当我运行以下程序时,它只是永远挂起,在我看来是因为死锁。
根据我的理解我
isInitialized
最初设置为false
。isInitialized
设置为true
。join
完成。isInitialized
必须设置为True。但是当我运行程序时,发现它什么都没打印;它只是挂起!
public class Test {
private static boolean isInitialized = false;
static {
Thread t = new Thread(new Runnable() {
public void run() {
isInitialized = true;
}
});
t.start();
try {
t.join();
} catch (InterruptedException e) {
}
}
public static void main(String[] args) {
System.out.println(isInitialized);
}
}
有人可以帮助我理解这种行为吗,如果是这样,为什么会出现死锁?