2016-03-31 9 views
-2

Я видел много ответов на StackOverflow о том, как создать тупик, но написанный код. Я ищу, чтобы понять более простой способ. Я хотел знать, какие шаги вы предпримете для воссоздания этого тупика. Я не ищу коды, но больше шагов. Traffic DeadlockКаков процесс создания Тупика?

Благодарим за ваше время. Извините за изображение ссылки, мне нужно 10 репутации для публикации изображений.

ответ

0

Простейшее возможный путь - Процесс А должен ждать процесса B закончить первый, для того, чтобы , чтобы закончить его работу (скажем необходим выход B для некоторых вычислений и то же самое происходит в B: он должен дождаться выхода процесса A, чтобы закончить сам.

Надеюсь, это достаточно ясно для вас. Поскольку вы специально не запрашивали никакого кода, я не буду писать код, так как, вероятно, слишком легко найти тупиковый код. Но в принципе, это похоже на то, как на автомобилях, блокирующих друг друга.

0

«Блокировка» в тупике возникла из-за возможности блокировки файлов или таблиц базы данных для предотвращения одновременного обновления нескольких файлов одновременно.

Например, процесс 1 блокирует таблицу A и обрабатывает таблицу 2 блокировок B. Если процесс 1 хочет также обновить таблицу B, но обнаружил ее заблокирован, тогда ей нужно дождаться, пока процесс 2 освободит ее. Если процесс 2 должен обновить таблицу A, он также будет заблокирован.

Эта ситуация является тупиком, где оба процесса ждут друг друга, чтобы освободить их блокировки.

0

У нас есть стейк, чтобы поесть, но мы стоим на серебре.

У меня есть вилка, чтобы съесть его, но у вас есть единственный нож, поэтому я должен дождаться, когда вы закончите его, прежде чем я смогу вырезать мясо.

У вас есть нож, чтобы разрезать его, но у меня есть единственная вилка, поэтому вам нужно подождать, пока я не закончу, прежде чем вы сможете схватить вилку, чтобы удерживать ее.

Похоже, мы будем голодать. Это тупик.

Стандартное решение состоит в том, чтобы убедиться, что, если кому-либо понадобится нож и вилка одновременно, им необходимо сначала забрать вилку.

Смежные вопросы