1
KeWaitForSingleObject
과 0과 KeReadStateSemaphore
사이에 차이가 있습니까?KeWaitForSingleObject와 0 타임 아웃 및 KeReadStateSemaphore의 차이
KeWaitForSingleObject
과 0과 KeReadStateSemaphore
사이에 차이가 있습니까?KeWaitForSingleObject와 0 타임 아웃 및 KeReadStateSemaphore의 차이
매우 큰 차이가 있습니다. KeReadStateSemaphore
은 단순히 세마포어의 상태를 반환하지만 대기 시간이 만족되면 (즉, 부작용이 신호 상태를 감소시키는 경우) 시간 초과가 0 인 KeWaitForSingleObject
은 실제로 부작용을 처리합니다. 전자를 사용하여 폴링하고, 후자를 사용하여 기다리지 않고 세마포를 획득하려고 시도하십시오.
스레드 A가 KeWaitForSingleObject를 호출하고 세마포어를 해제하지 않은 경우 스레드 B가 0으로 설정된 KeWaitForSingleObject를 호출하고 세마포를 획득 할 수 있습니까? 스레드 A에서 KeReleaseSemaphore를 호출하면 어떤 효과가 있습니까? – lalli
@lalli : 아니요, 첫 번째 스레드가 세마포어를 해제하지 않은 경우 두 번째 스레드가 KeWaitForSingleObject를 호출 할 때 아무 것도 발생하지 않습니다. 릴리스 될 때 아무 스레드도 세마포어에서 대기 중이므로 아무 것도 발생하지 않습니다. – wj32