public class UThread implements Runnable {
@Override
public void run() {
synchronized (this) {
System.out.println("this is first");
synchronized (this) {
System.out.println("this is second");
}
}
}
}
public class main {
public static void main(String str[]) {
UThread uThread = new UThread();
Thread t = new Thread(uThread);
t.start();
}
}
がないなぜそれが印刷されていますデッドロック
this is first
this is second
をデッドロックがないのはなぜ?コードがすでに自身で占有されているthis
をロックしようとした場合。
それは単独で撮影されているためです。他のスレッドがそれを望む場合にのみブロックします。 –