线程是否有可能使死锁本身?
从技术上讲,Java中的线程是否有可能使自身死锁?
不久前,我在一次面试中被问到这个问题,并回答说这是不可能的,但面试官告诉我,这是不可能的。不幸的是,我无法得到他关于如何实现这个僵局的方法。
这让我开始思考,我能想到的唯一情况是,你可以在哪里发生这种情况,你有一个RMI服务器进程,其中包含一个调用自己的方法。调用该方法的代码行放置在同步块中。
这甚至可能,还是面试官不正确?
我正在考虑的源代码是沿着这些路线(testDeadlock在RMI服务器进程中运行)
public boolean testDeadlock () throws RemoteException {
synchronized (this) {
//Call testDeadlock via RMI loopback
}
}