mutex, cond; 競爭, 同步問題

1,  lock, 原子操作的問題, mutex.

2, 同步問題, wait, cond.    


這是兩類問題:

mutex是競爭, 髒, 不可信;

同步問題是同步的意思, 以防止有一個死循環一直在那偵聽這種感覺, 操作系統提供掛入等待隊列, 由信號參與喚醒, 效率什麼的好的多.


一般的同步問題編寫的框架:

pthread_mutex_lock(q->mutex);

while( condition false )                 //反覆要去判斷條件, 因爲睡眠以後出來還是要判斷條件的

{       // 其實這邊會釋放鎖

         pthread_cond_wait(q->flag, q->mutex);

        // 這邊繼續take這把鎖

}

condition setting;

flag setting;

pthread_mutex_unlock(q->mutex);

pthread_cond_signal(q->flag);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章