- 論壇徽章:
- 0
|
本帖最后由 zhutroy 于 2011-04-20 23:26 編輯
有兩個線程,
一個是producer,有一段任務(wù)代碼, 現(xiàn)在交給consumer執(zhí)行。
一個是consumer,收到消息后執(zhí)行代碼。
consumer使用 SCHED_RR, 優(yōu)先級是1, 兩個線程使用pthread_cond_wait 和pthread_signal
做通信, 感覺速度比較慢,
如果producer自己執(zhí)行consumer中的程序, 會快很多。
consumer的程序如下類似:
//consumer is a higher priority waiting thread.
consumer{
while(1) //可以這樣做嗎?
{
pthread_mutex_lock(&mutex);
if(empty)
pthread_cond_wait(&cond_full, &mutex);
//execute some code
pthread_cond_signal(&cond_empty);
pthread_mutex_unlock(&mutex);
}
}
//producer is call by high level application.
producer
{
pthread_mutex_lock(&mutex);
if(full)
pthread_cond_wait(&cond_empty, &mutex);
//execute some code
pthread_cond_signal(&cond_full);
pthread_mutex_unlock(&mutex);
} |
|