概念
訊號量(又名:訊號燈)與其他程序間通訊方式不大相同,主要用途是保護臨界資源.
分類:
二值訊號燈:訊號燈的值只能取0或1
計數訊號燈:訊號燈的值可以取任意非負值
使用訊號燈
1.開啟或建立訊號燈
2訊號燈值操作
3.獲得或設定訊號燈屬性
訊號api
1.semget
函式作用:建立訊號量
函式原型:int semget(key_t key, int nsems, int sem***)
引數:nsems:訊號量的數目,通常取1
sem***:用法同open
返回值:成功返回訊號量識別符號
出錯-1
2.semctl
函式作用:訊號量的控制,初始化,刪除等
函式原型:int semctl(int semid, int semnum, int cmd,union semun arg)
引數:cmd:
ipc_stst:獲得semid_ds結構semum:通常為0,第乙個訊號量ipc_setval:設arg的val的值為訊號量值
ipc_getval:返回訊號量的當前值
ipc_rmid:刪除訊號量
arg:union semun
返回值:cmd不同,返回值不同。
ipc_stat,ipc_setval,ipc_rmid:返回0
ipc_getval:返回訊號量的當前值
出錯:-1
3.semop
函式作用:執行pv操作
函式原型:int semop(int semid, struct sembuf *sops, size_t nsops)
引數:semid:semget()的返回值(訊號量識別符號)
sops:
nsops:運算元組sops中的運算元struct sembuf
返回值:成功返回訊號量識別符號
出錯-1
訊號量處理相關函式
訊號量處理函式 semget 使用格式 include int semget key t key int nsems,int sem 功能 建立乙個新的訊號量或獲取乙個已經存在的訊號量的鍵值。返回值 成功返回訊號量的標識碼id。失敗返回 1 引數 key 為整型值,使用者可以自己設定。有兩種情況 1...
訊號量 二值訊號量
訊號量 二值訊號量 訊號量是作業系統的重要部分,訊號量一般用來進行資源管理和任務同步。freertos中訊號量分為二值訊號量 互斥訊號量 計數訊號量和遞迴互斥訊號量,應用場景各不同。二值訊號量通常用於互斥訪問或同步,二值訊號量和互斥訊號量非常相似,但互斥訊號量有優先順序,二值訊號量沒有。因此二值訊號...
python訊號量 Python訊號量
python訊號量教程 訊號量是由作業系統管理的一種抽象資料型別,用於在多執行緒中同步對共享資源的使用。本質上說,訊號量是乙個內部資料,用於標明當前的共享資源可以有多少併發讀取。也可以簡單的理解為,訊號量是多把鎖,同時允許多個執行緒來更改資料,而 python訊號量與互斥鎖的關係 訊號量的乙個特殊用...