线程的当前实例是否有可能能够锁定自身并导致死锁?例如,在这部分代码中,我相信线程的当前实例无法进入第二个同步块,因为它已经对s1进行了锁定,并且无法再次锁定它。但是代码不能那样工作。并在第二个同步块中打印消息。有人可以向我解释我所缺少的吗?谢谢。
public class DeadLock {
final String s1="s1";
Thread t1=new Thread("t1"){
@Override
public void run() {
synchronized (s1) {
synchronized (s1) {
System.out.println(" t1 thread..");
}
}
}
};
public static void main(String[] args) {
DeadLock deadLock=new DeadLock();
deadLock.t1.start();
}
}