Сводная таблица объектов, используемых для синхронизации потоков
В следующей таблице суммируются сведения о различных объектах ядра примени тельно к синхрониаации потоков.
Объект |
Находится в занятом состоянии, когда |
Переходит в свободное состояние, когда |
Побочный эффект успешного ожидания |
Процесс |
процесс еще активен поток еще активен |
процесс завершается (ExitProcess, TerminateProcess) |
Нет |
Объект |
Находится в занятом состоянии, когда: |
Переходит в свободное состояние, когда: |
Побочный эффект успешного ожидания |
Задание |
время, выделенное заданию, еще не истекло |
время, выделенное заданию, истекло |
Нет |
Файл |
выдан запрос на ввод-вывод |
завершено выполнение запроса на ввод-вывод |
Нет |
Консольный ВВОД |
ввода нет |
ввод есть |
Нет |
Уведомление об изменении файла |
в файловой системе нет изменений |
файловая система обнаруживает изменения |
Сбрасывается в исходное состояние |
Событие с автосбросом |
вызывается ResetEvent, PulseEvent или ожидание успешно завершилось |
вызывается SetEvent или PulseEvent |
Сбрасывается в исходное состояние |
Событие со сбросом вручную |
вызывается ResetEvent или PulseEvent |
вызывается SetEvent или PulseEvent |
Нет |
Ожидаемый таймер с автосбросом |
вызывается CancelWaitable- Тiтеr или ожидание успешно завершилось |
наступает время срабатывания (SetWaitableTimer) |
Сбрасывается в исходное состояние |
Ожидаемый таймер со сбросом вручную |
вызывается CancelWaitableTimer |
наступает время срабатывания (SetWaitableTimef) |
Нет |
Семафор |
ожидание успешно завершилось |
счетчик > 0 (ReleaseSemaphore) |
Счетчик уменьшается на 1 |
Мьютекс |
ожидание успешно завершилось |
поток освобождает мьютекс (ReleaseMutex) |
Передается пото ку во владение |
Критическая секция (поль зовательского режима) |
ожидание успешно завершилось ( (Try)EnterCriticalSection) |
поток освобождает критическую секцию (LeaveCriticalSection) |
Передается потоку во владение |
Interlocked-функции (пользовательского режима) никогда не приводят к исключе нию потока из числа планируемых; они лишь изменяют какое-то значение и тут же возвращают управление.