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