pthread mutex 관련 질문이요
글쓴이: msjee / 작성시간: 목, 2012/11/15 - 10:00오전
간단한 멀티쓰레딩에서 락 사용법 질문드려요.
4개의 쓰레드가 크리티컬섹션 한부분에 들어가려고 하는데 거기엔 락이 1개 걸려있습니다.
제가 알고싶은건 락이 제대로 작동하는지를 알고싶거든요
그래서 해본것이
return_val = (pthread_mutex_lock(&mymutex)); printf("return_val: %d\n", return_val);
이거인데 리턴벨류가 항상 0이나오는거같거든요.
락이 제데로 작동되면 1개의 쓰레드가 락을 걸면 나머지 3개는 락이없어서
리턴벨류를 프린트 해야되는거아닌가요?
지금 든생각인데 프린트도 크리티컬 섹션 안쪽이라 프린트를 못하나요? --;;
어떻게하면 락이 제데로 작동하는지 알 수 있죠?
그리고
질문이 또하나 있는데요..
pthread_mutex_t mymutex[3]; return_val = (pthread_mutex_trylock(&mymutex[i]));
이런거도 말이 되는건가요?
제가 하고싶은건
쓰레드가 주어진 일을 할때마다 랜덤한 i 를 주고요
같은 i를 가진 쓰레드만 못들어가게 하고싶거든요.
예)
t1 i=1
t2 i=2
t3 i=1
t4 i=0
이런상황에서 t1,t2,t4 나 t2,t3,t4 만 동시에 되고
t1 과 t3 중 먼저온거만 크리티컬 섹션에 들여보내고 싶거든요.
감사합니다.
Forums:
댓글 달기