2008. 7. 15. 16:57
그림책에서 기능별 스레드를 분리하기 위해서 고민하던 중...
mutex 를 지원하지 않는다는 것을 알게 되었다.
(솔직히 난 gcc 를 컴파일러로 쓴다길래 당연히 pthread도 지원할 줄 알았다.)
그래도 다행이 semaphore 는 지원한다는 것이다.
결국 binary semaphore 를 이용해서 mutex 비스무리하게 만들어 낼 수 밖에 없다는 것이다.
문제는 semaphore를 take 하고 give 하는 순서를 정확히 잘 지켜서 프로그램을 만들어야
한다. semaphore 를 생성할때 Max 값을 1로 주었으니 별 문제는 없어 보인다만...
semaphore 를 생성하고 semaphore를 사용하는 thread 를 두개 생성한다.
thread 생성시 사용하는 함수를 정의한다.
각 쓰레드가 순서대로 sharedidx 값을 증가시키면서 값을 찍는 것을 볼 수 있을 것이다.
mutex 를 지원하지 않는다는 것을 알게 되었다.
(솔직히 난 gcc 를 컴파일러로 쓴다길래 당연히 pthread도 지원할 줄 알았다.)
그래도 다행이 semaphore 는 지원한다는 것이다.
결국 binary semaphore 를 이용해서 mutex 비스무리하게 만들어 낼 수 밖에 없다는 것이다.
문제는 semaphore를 take 하고 give 하는 순서를 정확히 잘 지켜서 프로그램을 만들어야
한다. semaphore 를 생성할때 Max 값을 1로 주었으니 별 문제는 없어 보인다만...
semaphore 를 생성하고 semaphore를 사용하는 thread 를 두개 생성한다.
thread 생성시 사용하는 함수를 정의한다.
각 쓰레드가 순서대로 sharedidx 값을 증가시키면서 값을 찍는 것을 볼 수 있을 것이다.