1. 실행순서에 있어서의 동기화

: 메모리에 접근하는 쓰레드의 실행순서를 동기화 한다.

* 생산자/소비자 모델

: 입력하는 쓰레드와 출력하는 쓰레드를 독립시켜야 한다.

* 이벤트(Event) 기반 동기화

: 이벤트 오브젝트를 사용한다. 이벤트 오브젝트는 두가지 모드가 있다.

: 이벤트 오브젝트는 프로그래머 요청에 의해서 Signaled 상태가 된다.

: 함수가 Blocked 상태를 빠져나올 때 자동 리셋 모드 이벤트 오브젝트라면, Non-Signaled 상태로의 변화가 자동으로 이루어진다.

* 수동 리셋(Manual-Reset)모드 이벤트(Event)의 활용 예

: 수동 리셋 모드 이벤트는 원하는 타이밍에 둘 이상의 쓰레드를 동시에 깨워서 실행해야 할 때 아주 좋은 도구가 될 수 있다.

: 하지만 둘 이상의 쓰레드의 순서는 뮤텍스를 함께 사용해야 해결 할 수 있다.

2. 이벤트(Event) 더하기 뮤텍스(Mutex)

* 이벤트와 뮤텍스 오브젝트 적용 예제

3. 타이머(TImer) 기반 동기화

: Windows에서 Signaled 상태라는 개념이 중요하다. 어떤 커널 오브젝트는 자동으로 되기도 하고 함수호출을 통해 변하기도한다.

: 타이머 오브젝트는 정해진 시간이 지나면 자동으로 Signaled 상태가 되는 특성을 지닌다.

: 여기서 말하는 동기화는 쓰레드의 실행시간 및 실행주기를 결정하겠다는 의미이다.

: Non-Signal 로 생성된다.

- 수동리셋 타이머

: 가장 일반적인 타이머, 설정한 시간에 이벤트가 발생한다.

- 주기적 타이머

: 설정한 시간에 주기적으로 이벤트가 발생하거나, 설정한 시간 간격 주기로 이벤트가 발생한다.


뇌를 자극하는 윈도우즈 시스템 프로그래밍
국내도서
저자 : 윤성우
출판 : 한빛미디어 2007.03.30
상세보기


+ Recent posts