读书人

惰性初始化造成的死锁有关问题

发布时间: 2012-07-16 15:44:59 作者: rapoo

惰性初始化造成的死锁问题

下面我们来看看下面这段代码,我们看看它会打印什么东西出来。


我们看上面的代码开始定义一个静态的boolean initialized 其初始值为false。然后再定义一个线程,在他的run方法中我们将 initialized 设置为true,主线程启动了后台线程,然后有调用join()方法等待后台线程结束,当后台线程执行完后我们可以知道 initialized 被置为true,然后我们在主方法中输出 initialized 的值。但是我们的程序不会输出任何的东西,他应该是被挂起了。。。。

在解决这个问题我们需要知道一个初始化的细节。当一个线程访问一个类的某个成员的时候,它会去检查这个类是否已经被初始化。在一般情况下,我们有四种情况发生。

读书人网 >编程

热点推荐