Linux系统编程40:多线程之基于环形队列的生产者与消费者模型
生活随笔
收集整理的這篇文章主要介紹了
Linux系统编程40:多线程之基于环形队列的生产者与消费者模型
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- (1)什么是信號量
- (2)與信號量相關的操作
- (3)基于環形隊列的生產者與消費者模型-信號量(單消費者單生產者)
(1)什么是信號量
前面的敘述中,我們通過鎖保證了每次只有一個線程進入臨界區,但是臨界區資源很多也很大,每次只允許一個線程進入往往會使效率很低。所以如果將臨界區劃分為多個獨立的區域,劃分為多少個區域就讓多少個線程進入,,但是這樣就同時帶來了一個問題——如果劃分為了5個區域,但是同時進入了10個線程該怎么辦?所以這一點可以通過信號量解決。信號量可以理解為一個計數器,它用來描述臨界資源的有效個數
信號量由一個值和一個指針組成,指針指向等待該信號量的線程。信號量的值表示相應資源的使用情況,比如如果S>=0表示資源夠用,如果執行P操作表示請求分配一個資源,那么S就會減一;當S<0時表示已經沒有可用資源(此時S的絕對值表示等待該資源的線程數)請求者必須等待其他線程釋放資源方可繼續運行。如果執行一個V操作就表示會釋放一個資源,所以S加一
(2)與信號量相關的操作
1:要使用信號量就需要創建一個sem_t類型變量
總結
以上是生活随笔為你收集整理的Linux系统编程40:多线程之基于环形队列的生产者与消费者模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查看服务器信息命令
- 下一篇: 全球酒店详情查看API接口-基于极核数据