Насколько технически возможно, что поток в Java сам зашел в тупик?
Меня попросили ответить на собеседование некоторое время назад и ответили, что это невозможно, но интервьюер сказал мне, что это так. К сожалению, я не смог получить его метод о том, как достичь этого тупика.
Это заставило меня задуматься, и единственная ситуация, о которой я могу думать, это то, где вы можете это сделать, - это когда у вас есть серверный процесс RMI, содержащий метод, который вызывает себя. Строка кода, вызывающая метод, помещается в синхронизированный блок.
Возможно ли это или неверный интервьюер?
Исходный код, о котором я думал, был в этих строках (где testDeadlock работает в процессе RMI-сервера)
public boolean testDeadlock () throws RemoteException {
synchronized (this) {
//Call testDeadlock via RMI loopback
}
}