이벤트(동기화 원시)
Event (synchronization primitive)컴퓨터 과학에서 이벤트(이벤트 세마포어라고도 함)는 특정 조건이 참이 되었을 때 대기하는 프로세스에 지시하기 위해 사용되는 동기화 메커니즘의 일종이다.
이벤트는 부울 상태와 다음 작업을 포함하는 추상 데이터 유형이다.
- wait - 실행 시, 이벤트 상태가 true로 설정될 때까지 실행 프로세스가 중단된다.대기 상태가 호출되기 전에 이미 true로 설정되어 있는 경우, 기다림은 아무런 영향을 미치지 않는다.[clarification needed]
- set - 이벤트의 상태를 true로 설정하고, 모든 대기 프로세스를 해제하십시오.
- clear - 이벤트의 상태를 false로 설정한다.
예를 들어 마이크로소프트 윈도우즈에서 제공하는 구현에서는 작업 대기(WaitForObject 및 관련 기능), 세트(SetEvent) 및 클리어(ResetEvent)를 제공하는 등 가능한 작업에 대해 서로 다른 하위 세트를 제공할 수 있다.이벤트 개체를 생성하는 동안 지정할 수 있는 옵션은 SetEvent의 동작을 변경하여 단일 스레드만 해제되고 해당 스레드가 해제된 후 상태가 false로 자동 반환되도록 한다.
재설정 기능이 부족한 사건, 즉 한 번만 완료할 수 있는 사건을 미래라고 한다.[1]반면에 모니터는 완성 신호와 뮤텍스를 결합하고 생산자와 소비자가 모니터에서 동시에 실행할 수 없도록 하여 이벤트+임계 섹션으로 만들기 때문에 보다 일반적이다.
참조
- ^ A의 "비동기 코루틴이 있는 웹 크롤러" 500줄 이하. 제시 지류 데이비스와 귀도 반 로섬은 "이행은 비동기적인 것을 사용한다"고 말한다.여기에 표시된 미래 대신 이벤트.차이점은 이벤트는 재설정할 수 있지만 미래는 해결된 것에서 보류 중인 것으로 다시 전환할 수 없다는 것이다."
외부 링크
- 이벤트 개체, Microsoft Developer Network
- 웨이백 머신에 보관된 2020-11-01 파이썬의 스레드 동기화 메커니즘