safe publication and the advantage of being immutable vs. effectively immutable safe publication and the advantage of being immutable vs. effectively immutable multithreading multithreading