我无法同步读取不可变的对象保存内容?

时间:2018-08-25 00:39:45

标签: java multithreading immutability

让场景如下:

我有一个volatile String str,该线程在多个线程之间共享。由于String是不可变的,因此尽管我们可以更改引用str,但它随时指向的任何对象都是只读的。

现在,让我们说我的一个线程中有一个方法读str
假设str的读入不同步,即使在执行期间的某个时间引用str被覆盖,也可以保证该方法读入的str的Object保持不变。 ?

也就是说,如果某个方法传递了引用,它是否保存了它的本地副本(这样以后再更改原始引用对该方法没有影响)?

对于任何通用的不可变对象/基元,此语句是否正确?

0 个答案:

没有答案