여러 자식 프로세스들을 뿌려 놓고... 해당 자식 프로세스들은 WaitForSingleObejct 함수로 시스템 전역 이벤트를 무한 대기.
중앙 커맨드 프로세스에서 해당 이벤트를 SET 시켜서 자식 프로세스들에게 알리는데,
자식 프로세스들은 특정 작업을 1회만 수행하고, 다시 해당 이벤트를 무한 대기하게 하고 싶어.
중앙 커맨드 프로세스에서 일괄적으로 자식 프로세스들에게 이벤트 발생을 알려야 하므로,
CreateEvent 를 할 때, 수동 Reset 으로 이벤트 옵션을 줘서... 중앙 커맨드가 Set 을 1번만 활성화 시켜도, 모든 자식 프로세스 들이 동작하게끔 할려고 해.
근데 수동 Reset 을 하게 되면, 자식 프로세스들이 모두 작업을 끝냈다고 판단되는 시점에 다시 Reset 을 해줘야 하는데...
이걸 단순히 Sleep(1000) 이딴 식으로 하자니, 작업을 먼저 끝낸 자식 프로세스들이 WaitForSingleObject 에서 대기하지 않고, 재진입을 할거 같단 말이지...
이런 상황에서 사용할 수 있는 윈도우의 동기화 메커니즘에 뭐가 있을깡?
어휴... mutex 같은걸로 상호 대기 상태로 만들려니깐, 이게 삑사리 나면 바로 데드락에 걸릴거 같아서 불안하고...
자식 프로세스들의 작업을 그냥 무한 반복 시키자니, 커맨드 프로세스가 이벤트를 Reset 할 때 까지 CPU 사용량이 확 증가할거 같고... ;
어렵넹...
중앙 커맨드 프로세스에서 해당 이벤트를 SET 시켜서 자식 프로세스들에게 알리는데,
자식 프로세스들은 특정 작업을 1회만 수행하고, 다시 해당 이벤트를 무한 대기하게 하고 싶어.
중앙 커맨드 프로세스에서 일괄적으로 자식 프로세스들에게 이벤트 발생을 알려야 하므로,
CreateEvent 를 할 때, 수동 Reset 으로 이벤트 옵션을 줘서... 중앙 커맨드가 Set 을 1번만 활성화 시켜도, 모든 자식 프로세스 들이 동작하게끔 할려고 해.
근데 수동 Reset 을 하게 되면, 자식 프로세스들이 모두 작업을 끝냈다고 판단되는 시점에 다시 Reset 을 해줘야 하는데...
이걸 단순히 Sleep(1000) 이딴 식으로 하자니, 작업을 먼저 끝낸 자식 프로세스들이 WaitForSingleObject 에서 대기하지 않고, 재진입을 할거 같단 말이지...
이런 상황에서 사용할 수 있는 윈도우의 동기화 메커니즘에 뭐가 있을깡?
어휴... mutex 같은걸로 상호 대기 상태로 만들려니깐, 이게 삑사리 나면 바로 데드락에 걸릴거 같아서 불안하고...
자식 프로세스들의 작업을 그냥 무한 반복 시키자니, 커맨드 프로세스가 이벤트를 Reset 할 때 까지 CPU 사용량이 확 증가할거 같고... ;
어렵넹...
아... 매 커맨드 처리 마다 대기할 이벤트를 새로 생성하면 되겠다. 역시 디씨질을 하니 아이디어가 떠오르는군...
옵저버 패턴 추천이요