中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

進程間通信-信號量

發布時間:2020-06-19 03:16:07 來源:網絡 閱讀:329 作者:yayaru9240 欄目:編程語言

信號量:它描述了當前某種資源的數量。它的意圖在于進程間同步,就相當于一個計數器,它本身不具有數據交換的功能,而是通過控制其他通信資源來實現進程間通信。

當一個進程要訪問臨界資源時,先要進行P操作申請資源,當大于0時,資源可以請求,申請過后,若為0,則將進程掛起;當進程不再訪問該信號量控制的資源時,進行V操作,若有進程掛起,則喚醒該等待的進程繼續恢復訪問,如果無掛起進程,就給它加1。

進程間同步:對臨界資源的訪問帶有順序性的,一個執行完畢,另一個才可以執行。

注意:對信號量的操作均為原子操作,因為信號量的主要作用就是維護資源的互斥或多進程的同步訪問,而在信號量的初始化和創建中均不能保證其原子操作。

創建信號量:semget(key_t key,int nsems,int semflg);

P,V操作:

semop(int semid,struct sembuf* buf,unsigned nsops);//對當前信號量集上的第幾個信號量進行P/V操作

釋放信號量:semctl(int semid ,int semnue,int cmd)//對當前信號量集上的第幾個信號量進行cmd指令操作。

union semun { 

 int val; // 使用的值 

 struct semid_ds *buf; // IPC_STAT、IPC_SET 使用緩存區 

 unsigned short *array; // GETALL,、SETALL 使用的數組 

 struct seminfo *__buf; // IPC_INFO(Linux特有) 使用緩存區 

}; 

comm.h

進程間通信-信號量

comm.c

進程間通信-信號量

進程間通信-信號量

進程間通信-信號量

test.c
進程間通信-信號量

運行結果:

進程間通信-信號量


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

中卫市| 溆浦县| 穆棱市| 修武县| 天峻县| 伊金霍洛旗| 施甸县| 内黄县| 叶城县| 延安市| 安龙县| 韶山市| 景洪市| 岳普湖县| 临清市| 成安县| 西和县| 东城区| 将乐县| 方城县| 黄浦区| 巨野县| 鄄城县| 通江县| 新邵县| 满城县| 温泉县| 凤冈县| 沧源| 崇州市| 穆棱市| 开远市| 临澧县| 福清市| 新宾| 锡林浩特市| 龙游县| 麻江县| 溧水县| 乳山市| 电白县|