Little book of semaphores詳解

3.6 Barrier

Barrier 詳解

Barrier的意思是  障礙、用柵欄圍住

 

看這部分內容需要考慮3.5節Multiplex的內容,作者想講述的是當等待的線程個數爲n的時候,再開始執行每一個等待的線程。

 

如下設計會產生死鎖:

原因:

假如有5個thread,這時有4個thread已經到來了,即count爲4,barrier中的信號爲-4,這時又一個thread到來,count爲5,所以barrier中的信號爲-4+1 = -3,但是不能繼續去執行,因爲信號時-3,所以會死鎖。

 

改成如下,就能解決死鎖的問題:

圖片摘自Little book of semaphores。

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