Вероятно, вы не раз наблюдали на трамвайной остановке следующую забавную картину (рис. 29.6).
Рис 29.6. Ситуации тупиков
возникают не только в программировании
Рисунок дает исчерпывающее пояснение ситуации
тупиков. Тупики имеют место, когда поток ожидает ресурс, который в данный момент
принадлежит другому потоку. Рассмотрим пример. Поток 1 захватывает ресурс А,
и для того чтобы продолжать работу, ждет возможности захватить ресурс Б. В то
же время Поток 2 захватывает ресурс Б и ждет возможности захватить ресурс А.
Развитие этого сценария заблокирует оба потока; ни один из них не будет исполняться.
Ресурсами могут выступать любые совместно используемые объекты системы — файлы,
массивы в памяти, устройства ввода/вывода и т. п.
В ситуации на картинке три трамвая захватили
по одному ресурсу (перекрестку) и пытаются захватить еще один, что, очевидно,
невозможно без освобождения уже захваченных. В жизни ситуация разрешилась просто
— самый молодой из водителей был вынужден отъехать. В информационных технологиях
все бывает сложнее. Откройте любой документ, сопровождающий очередной пакет
обновления к любой версии Windows. Очень часто там можно найти информацию об
одной-двух исправленных ситуациях тупиков.
Знаете ли Вы, что "тёмная материя" - такая же фикция, как черная кошка в темной комнате. Это не физическая реальность, но фокус, подмена. Реально идет речь о том, что релятивистские формулы не соответствуют астрономическим наблюдениям, давая на порядок и более меньшую массу и меньшую энергию. Отсюда сделан фокуснический вывод, что есть "темная материя" и "темная энергия", но не вывод, что релятивистские формулы не соответствуют реалиям. Подробнее читайте в FAQ по эфирной физике.