글
카테고리 없음 2009. 7. 28. 11:49Signaled 상태란?
대기 핸들
대 기 핸들은 특정 스레드의 상태를 다른 스레드에 알리는 개체입니다. 스레드에서는 대기 핸들을 사용하여 해당 스레드에서 리소스를 단독으로 사용해야 한다는 것을 다른 스레드에 알릴 수 있습니다. 그러면 다른 스레드에서는 대기 핸들이 더 이상 사용되지 않을 때까지 기다렸다가 리소스를 사용해야 합니다. 대기 핸들의 상태에는 signaled와 nonsignaled의 두 가지가 있습니다. 대기 핸들이 어떤 스레드에 의해서도 소유되지 않은 경우 그 대기 핸들을 signaled 상태에 있다고 합니다. 대기 핸들이 특정 스레드에 의해 소유된 경우 그 대기 핸들을 nonsignaled 상태에 있다고 합니다.
이 signaled 상태를 이용하는 대표적인 함수가 WaitForMultipleObjects와 WaitForSingleObject 등이 있다.
간단한 사용형태는 main이나 특정함수에서 thread를 만든 후 thread가 종료될 때까지 프로그램이 종료되지 않아야 하는데 이 때 해당 스레드가 종료되었는지를 기다리기위해 해당 스레드의 핸들을 이용해 WaitForMultipleObjects나 WaitForSingleObject 호출하여 스레드 종료시점을 기다리는 식으로 이용할 수 있다.
RECENT COMMENT