色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 信號量是什么,讓你幾分鐘弄懂

信號量是什么,讓你幾分鐘弄懂 時間:2018-07-16      來源:未知

在了解和學習信號量之前,我們需要明確一點,信號量和信號不同,切勿將信號和信號量混淆,因為二者根本不是一個概念。

一、 什么是信號量?

為了防止出現因多個程序同時訪問一個共享資源而引發的一系列問題,我們需要一種方法,它可以通過生成并使用令牌來授權,在任何時刻只能有一個執行線程訪問代碼的臨界區域。臨界區域是指執行數據更新的代碼需要獨占式地執行。

信號量是一個特殊的變量,程序對其訪問都是原子操作,且只提供它等待或者發送兩種操作,也就是P操作和V操作。何為P/V操作:舉個例子,我們平常最常見也最簡單的信號形式——二值信號量。P操作則是對等待的信號量的值進行減一操作,而V操作則是對某一個信號量執行加一操作。這里我們暫時也僅針對于二值信號量來討論。

二、信號量的工作原理

信號量只能進行兩種操作等待和發送信號,即P操作和V操作,他們的行為是這樣的:

P:如果信號量的值大于零,就給它減1;如果它的值為零,就掛起該進程的執行直到

該信號量的值不為一為止。

V:如果有其他進程因等待該信號量而被掛起,就讓它恢復運行,如果沒有進程因等待該 信號量而掛起,就給它加1。

三、 POSIX信號量相關函數

int sem_init(sem_t *sem, int pshared, unsigned int value);

int sem_wait(sem_t *sem);

int sem_post(sem_t *sem);

sem_init可以設置信號量的初始值和初始狀態,sem_wait則會等待指定信號量,如果該值為0,則等待,否則對信號量的值減一并獲取資源,即P操作。sem_post則對指定信號量的值加一,即V操作。

四、 總結

信號量是一個特殊的變量,程序對其訪問都是原子操作,且只允許對它進行等待(即P(信號變量))和發送(即V(信號變量))信息操作。我們通常通過信號來解決多個進程或線程對同一資源的訪問競爭的問題。

上一篇:波特率是什么,讓你詳細了解

下一篇:管道通信: 有名管道 無名管道,行業大牛通通教會你

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 夜夜夜夜夜夜爽噜噜噜噜噜噜 | 欧美亚洲国产日韩精品播放 | 久久精品国产亚洲AV忘忧草18 | 免费中文无码AV动作片 | 97色偷偷色噜噜狠狠爱网站 | 日韩欧美亚洲中文乱码 | 亚洲综合无码精品一区二区三区 | 成人午夜看黄在线尤物成人 | 高潮添下面视频免费看 | 十八女毛片 | 精品久久久无码专区中文字幕 | 国产午夜亚洲精品不卡 | 风韵丰满熟妇啪啪区老老熟女百度 | 亚洲色无码综合图区手机 | 一级爽片| 久久久久久国产精品免费无码 | 内射人妻深入内射 | 中文字幕在线中文一页 | 日本一区二区三区不卡免费 | 全免费A级毛片免费看网站 国产成人精品a∨一区二区 | 亚洲日韩欧美一区二区三区在线 | 永久免费AV无码网站性色AV | 无码中文精品专区一区二区 | 国产精品无码欧美日韩 | 老司机深夜18禁污污网站 | 国产麻豆一区二区三区精品 | 亚洲欧美日韩在线不卡 | 成年永久一区二区三区免费视频 | 一边啪啪一边呻吟AV夜夜嗨 | 国产浴室后入懂色 | 久久青青草原精品国产 | 狠狠干狠狠做 | 国产精品自在线拍 | 久久婷婷五月综合色中文字幕 | 大地资源视频在线观看 | 亚洲综合AV一区二区三区不卡 | 无码国产欧美日韩精品 | 波多野结衣久久一区二区 | 熟妇好紧好大快点舒服使劲xh | 久久久无码精品亚洲日韩蜜桃 | 久久厕所国产精品嘘嘘 |