ВУЗ:
Составители:
72
на» – облегчённого потока, выполняемого исключительно в режиме пользо-
вателя. У каждого потока может быть несколько «волокон». 
Взаимодействие потоков 
В  многопоточной  среде  часто  возникают  проблемы,  связанные  с  ис-
пользованием параллельно исполняемыми потоками одних и тех же данных 
или устройств. Для решения подобных проблем используются такие методы 
взаимодействия потоков, как взаимоисключения (мьютексы), 
семафоры, кри-
тические секции и события. 
Взаимоисключения (mutex, мьютекс) – это объект синхронизации, ко-
торый устанавливается в особое сигнальное состояние, когда не занят каким-
либо  потоком.  Только  один  поток  владеет  этим  объектом  в  любой  момент 
времени,  отсюда  и  название  таких  объектов (от  английского mutually 
exclusive access – взаимно исключающий доступ) – одновременный доступ к 
общему  ресурсу  исключается
.  После  всех  необходимых  действий  мьютекс 
освобождается, предоставляя другим потокам доступ к общему ресурсу.  
Семафоры  представляют  собой  доступные  ресурсы,  которые  могут 
быть приобретены несколькими потоками в одно и то же время, пока пул ре-
сурсов не опустеет. Тогда дополнительные потоки должны ждать, пока тре-
буемое  количество  ресурсов  не  будет  снова  доступно. 
Семафоры  очень  эф-
фективны, поскольку они позволяют одновременный доступ к ресурсам.  
События. Объект, хранящий в себе 1 бит информации «просигнализи-
рован  или  нет»,  над  которым  определены  операции «просигнализировать», 
«сбросить в непросигнализированное состояние» и «ожидать». Ожидание на 
просигнализированном  событии  есть  отсутствие  операции  с  немедленным 
продолжением  исполнения  потока.  Ожидание  на  непросигнализированном 
событии приводит 
к приостановке  исполнения потока до  тех пор, пока дру-
гой поток (или же вторая фаза обработчика прерывания  в  ядре  ОС)  не про-
Страницы
- « первая
- ‹ предыдущая
- …
- 70
- 71
- 72
- 73
- 74
- …
- следующая ›
- последняя »
