论坛首页 Java企业应用论坛

用happen-before规则重新审视DCL

浏览 37556 次
该帖已经被评为精华帖
作者 正文
   发表时间:2009-03-10  
非常精彩的文章,总于明白DCL的真正含义了
0 请登录后投票
   发表时间:2009-09-28  
引用

这里,instance变量和instance.someField是两个不同的变量,这才有可能虽然instance的值与主内存是同步的,但someField的值却不与主内存同步。

private volatile static LazySingleton instance;  


请教下,这里加了volatile有用吗,它只能保证这个引用的可见性,但是instance.someField值不一定会吧?
所以这里加volatile, 只能保证当线程A执行到new LazySingleton()的时候,另一个线程B在判断instance == null时并不会出现null的这种可能。望lz解释下,thx。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics