ВУЗ:
Составители:
73
сигнализирует событие. Возможно ожидание нескольких событий в режимах 
«любого»  или «всех».  Возможно  также  создания  события,  автоматически 
сбрасываемого  в  непросигнализированное  состояние  после  пробуждения 
первого же – и единственного – ожидающего потока (такой объект использу-
ется как основа для реализации объекта «критическая секция»). Активно ис-
пользуются в MS Windows, как в режиме пользователя, так и в 
режиме ядра.  
Критические  секции обеспечивают синхронизацию подобно мьютек-
сам за исключением того, что объекты, представляющие критические секции, 
доступны в пределах одного процесса. События, мьютексы и семафоры так-
же можно  использовать в  однопроцессном приложении,  однако, реализации 
критических секций в некоторых ОС (например, Windows NT), обеспечивают 
более быстрый и более эффективный [1, 2] механизм взаимно-исключающей 
синхронизации
 – операции «получить» и «освободить» на критической  сек-
ции  оптимизированы  для  случая  единственного  потока (отсутствия  конку-
ренции)  с  целью  избежать  любых  ведущих  в  ядро  ОС  системных  вызовов. 
Подобно  мьютексам  объект,  представляющий  критическую  секцию,  может 
использоваться только одним потоком в данный момент времени, что делает 
их крайне полезными при разграничении доступа к 
общим ресурсам.  
Условные  переменные (condvars). Сходны  с  событиями,  но  не  явля-
ются  объектами,  занимающими  память, – используется  только  адрес  пере-
менной, понятие «содержимое переменной» не существует, в качестве услов-
ной переменной может использоваться адрес произвольного объекта. В отли-
чие от событий, установка условной переменной в просигнализированное со-
стояние  не  влечет  за  собой  никаких
  последствий  в  случае,  если  на  данный 
момент  нет  потоков,  ожидающих  на  переменной.  Установка  события  в  ана-
логичном  случае  влечет  за  собой  запоминание  состояния «просигнализиро-
вано»  внутри  самого  события,  после  чего  следующие  потоки,  желающие 
ожидать  события,  продолжают  исполнение  немедленно  без  остановки.  Для 
полноценного  использования  такого  объекта  необходима  также  операция 
Страницы
- « первая
- ‹ предыдущая
- …
- 71
- 72
- 73
- 74
- 75
- …
- следующая ›
- последняя »
