Это вопрос интервью. В общем, тупик между двумя потоками генерируется, когда thread1 блокирует mutex1, и за мгновение до того, как он попытается заблокировать mutex2, поток 2 блокирует mutex2.После этого протектора 2 хочет заблокировать mutex1.Так они ждут друг друга навсегда.можно создать тупик с одним замком
Вопрос: «Можете ли вы дать сценарий тупика с одним мьютексом и любым количеством потоков?»
Это просто плохая программа. Но это хороший ответ! –
Правильно, и Thread A может даже не понадобиться умирать, чтобы вызвать тупик: если код между мьютексом и релизом должен был выдать исключение (в языке, поддерживающем исключения), а релиз не был каким-то «окончательным» 'block, ни один нить никогда не сможет получить этот замок снова.Это звучит как совершенно реальная возможность для меня, и, как указывает Джеймс, большой вопрос интервью. –