Прежде всего я приношу извинения за задержку. Почему-то на несколько дней я потерял доступ к форму. (Может, Модератор сможет прокомментировать это?)
Из всех соображений на тему deadlock'ов в данный момент могу вспомнить только главу в теоретической книге Хоара (Hoare) "Теория последовательных взаимодействующих процессов" (Изд-во "Мир", середина 80-х), где разбирается классическая задача параллельного программирования - "Задача о 5-и обедающих философах". На круглом столе стоит 5 тарелок со спагетти и между ними разложено 5 вилок. Предполагается, что есть спагетти можно, только имея в каждой руке по вилке. 5 философов прохаживается по комнате, время от времени подходят к своей тарелке на столе и дожидаются, пока освободятся обе вилки рядом с их тарелкой (возможно, занятые соседями), после чего, съев некоторое (ненулевое) количество спагетти, отходят от стола и возобновляют беседу до тех пор, пока не проголодаются. А теперь представьте себе, что все философы одновременно подошли к столу, взяли в левую руку по вилке и ждут, пока сосед справа освободит свою вилку. Как легко догадаться, в этих условиях они все умрут от голода.
Хоар предлагает в качестве решения ввести метрдотеля, который подводит к столу очередного философа только тогда, когда возле тарелки претендента обе вилки свободны. На языке общественных наук это может называться, скажем, усилением регулирующей роли государства или введением суперарбитра. Наводит на ассоциации, не так ли?
Ростислав, я поискал в Интернете и нашел ссылочку, которая тоже может отчасти заинтересовать Вас:
"Detecting Deadlocks in Multithreaded Win32 Applications"
И вот пара выдержек с этой странички:
"A deadlock, very simply, is a condition in which two or more threads wait for each other to release a shared resource before resuming their execution. Because all threads participating in a deadlock are suspended and cannot, therefore, release the resources they own, no thread can continue, and the entire application (or, worse, more than one application if the resources are shared between threads in multiple applications) appears to hang."
........
"Unfortunately, deadlocks are not always that easy to see. In a complex application, several conditions depending on each other may account for a deadlock that only shows up under very specific circumstances. Here is a piece of trivia from 16-bit Microsoftr WindowsЩ history that describes such a pathological deadlock, involving both low-level system details and third-party applications: With certain network drivers loaded, Windows version 3.1 occasionally enters a state in which trying to open a virtual DOS box produces an empty black screen that you can switch away from but which never goes beyond the stage of pure and dull blackness_the so-called "black screen of death." This orphaned DOS box could linger around until doomsday, and there's no way to get rid of it or bring it back to life_and even worse, in some of the impersonations of the "black screen of death," the entire system simply hangs until a cold reboot is performed."
Насчет форума - не беспокойтесь, не вы один такой-это глюк ! ;-) Хоар когда-то держал в руках - поищу ипогружусь в чтение - может, чего навеет. За ссылочку - отдельное спасибо ! Cold reboot - ничего не напоминает ????;-)