pthread 에서 우선순위
글쓴이: itsnow / 작성시간: 목, 2005/04/14 - 5:10오후
프로그램을 짜고 있는데
pthread_create(..)
{
sem_wait(&get);
...
}
{
for(i=0; i<all_player_num; i++){
player_threadName[i] = i;
pthread_create(&player_threadID[i],&pthread_attr, faceUpCheckThread, (void*)&player_threadName[i]);
}
while(1){
sem_post(&get);
..
}
할 경우 보면 threadName[0], [1],[2],[3] 순으로 제어권을 가지게 됩니다.
실제 쓰레드를 만들고 나서 get에 대한 제어권을 제일 빨리 획득하는 쓰레드가 수행되어야 하는데 0,1,2,3 순으로 수행됩니다.
무작위로 제어권을 가지도록 할 수 없을까요?
이 글에는 간단하게 세마포어 권한부여를 하였는데 실제로는 복잡합니다.
실제 코드에서는 세마포어 상으로는 여러 쓰레드가 동시에 sem_wait()하여서 제일 빨리 획득하는 임의의 쓰레드가 가져갈 꺼라 생각했는데 순차적으로 semaphore권한을 가져가더라구요.
Forums:
posix 스레드는 우선순위 배정이 없을 겁니다. 몇몇 시스템은 구현에
posix 스레드는 우선순위 배정이 없을 겁니다. 몇몇 시스템은 구현에 따라서 제공하기도 하는데.. 지금 처럼 순차적으로 되었다는건 create 호출이 순차적으로
되어서 그럴겁니다. 실제 스레드 스케줄링 레벨에서는 무작위인걸로 알고 있습니다.
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
댓글 달기