可以由另一个线程修改,但这不是保证。这也不是线程安全的。要使变量保证从另一个线程查看,您需要执行以下任一 *** 作
仅在以下情况下,才能保证一个线程对字段所做的更改仅对其他线程可见:
- 写入线程释放同步锁,而读取线程随后获取该相同的同步锁。
- 如果将一个字段声明为易失性字段,则在写入
线程执行任何进一步的内存 *** 作之前,写入该线程的任何值都会被写入线程并使写入线程可见(即,出于
手头的目的,将立即刷新该字段)。读取器线程必须
在每次访问时重新加载volatile字段的值。- 线程第一次访问对象的字段时,它将看到该字段的初始值或自其他线程写入以来的值。
- 线程终止时,所有写入的变量都将刷新到主内存。例如,如果一个线程使用Thread.join在另一个线程的终止上进行同步,则可以保证看到该
线程产生的效果(请参见第4.3.2节)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)