Событие (примитив синхронизации) - Event (synchronization primitive)

В Информатика, мероприятие (также называемый семафор событий) является разновидностью синхронизация механизм, который используется для указания ожидающим процессам, когда определенное условие стало истинным.

Событие - это абстрактный тип данных с логическим состоянием и следующими операциями:

  • ждать - при выполнении вызывает приостановку выполняющегося процесса до тех пор, пока состояние события не станет истинным. Если состояние уже установлено в значение true до того, как было вызвано ожидание, ожидание не имеет никакого эффекта.[требуется разъяснение ]
  • набор - устанавливает состояние события в true, освобождает все ожидающие процессы.
  • Чисто - устанавливает состояние события в false.

Различные реализации событий могут предоставлять разные подмножества этих возможных операций; например, реализация, предоставленная Майкрософт Виндоус обеспечивает операции ждать (WaitForObject и связанные функции), набор (SetEvent) и Чисто (ResetEvent). Параметр, который может быть указан во время создания объекта события, изменяет поведение SetEvent, так что освобождается только один поток, а состояние автоматически возвращается в значение false после того, как этот поток будет освобожден.

События за исключением перезагрузить функции, то есть те, которые можно выполнить только один раз, известны как фьючерсы.[1] Мониторы являются, с другой стороны, более общими, поскольку они сочетают сигнализацию о завершении с мьютекс и не позволять производителю и потребителю выполняться одновременно в мониторе, что делает его событием +критическая секция.

Рекомендации

  1. ^ 500 строк или меньше, "Веб-сканер с асинхронными сопрограммами" А. Джесси Джирью Дэвис и Гвидо ван Россум говорит: «реализация использует asyncio.Event вместо показанного здесь будущего. Разница в том, что событие может быть сброшено, тогда как будущее не может перейти из решенного обратно в ожидающее».

внешняя ссылка