Архив документации OpenNet.ru /
Раздел "Программирование, языки" /
Индекс
Next: Работа с атрибутами переменных
Up: Потоки (threads).
Previous: Вложенные блокировки односвязного списка.
Contents
Переменные состояния используются, чтобы атомарно блокировать потоки,
пока не наступит специфическое состояние. Переменные состояния всегда
используются в сочетании с блокировками мьютексов:
- Состояние проверяется под защитой мьютекса. Если условие ложно, поток
обычно блокируется на переменной состояния и атомарно освобожает мьютекс,
ожидающий изменения состояния.
- Если другой поток изменяет состояние, он сигнализирует связанной переменной
состояния, чтобы пробудить один или несколько ожидающих потоков, снова
захватить мьютекс, и перепроверить условие.
Переменные состояния могут использоваться для синхронизации потоков
между процессами, если они размещены в памяти, которая доступна сотрудничающим
процессам. Дсциплина планирования определяет порядок пробуждения блокированных
потоков. Для значения по умолчанию SCHED_OTHER потоки пробуждаются
в порядке приоритетов. Атрибуты переменных состояния должны быть установлены
и инициализированы прежде, чем переменные состояния будут использоваться.
Subsections
2003-12-09
Архив документации на OpenNet.ru