Реализации алгоритмов/Алгоритм Деккера: различия между версиями
Содержимое удалено Содержимое добавлено
РоманСузи (обсуждение | вклад) уточнение |
Oleg4280 (обсуждение | вклад) |
||
Строка 1:
{{wikipedia|Алгоритм Деккера}}
'''Алгоритм Деккера''' — первое известное корректное решение проблемы [[w:мьютекс|взаимного исключения]] в [[w:параллельные вычисления|параллельном программировании]]. Он позволяет двум потокам выполнения совместно использовать неразделяемый ресурс без возникновения конфликтов, используя только [[w:Общая память|общую память]] для коммуникации. Если два процесса пытаются перейти в [[w:Критическая секция|критическую секцию]] одновременно, алгоритм позволит это только одному из них, основываясь на том, чья в этот момент очередь. Если один процесс уже вошёл в критическую секцию, другой будет ждать, пока первый покинет её. Это реализуется при помощи использования двух флагов (индикаторов «намерения» войти в критическую секцию) и переменной ''turn'' (показывающей, очередь какого из процессов наступила).
== C++ ==
|