sembuf結構體的定義如下:
[cpp]view plain
copy
struct
sembuf
;
sem_num標識訊號量集中的第幾個訊號量,0
表示第1個,1
表示第2
個,nsems - 1
表示最後乙個。
sem_op標識對訊號量的所進行的操作型別。對訊號量的操作有三種型別:
sem_flag:訊號量操作的屬性標誌,如果為0
,表示正常操作,如果為
ipc_wait
,使對訊號量的操作時非阻塞的。即指定了該標誌,呼叫執行緒在訊號量的值不滿足條件的情況下不會被阻塞,而是直接返回
-1,並將
errno
設定為eagain
。如果為
sem_undo
,那麼將維護程序對訊號量的調整值,以便程序結束時恢復訊號量的狀態。
下面解釋一下與單個訊號量相關的幾個值:
semval
semncnt:等待
semval
變為大於當前值的執行緒數。在文章開頭訊號量的結構中已提到。
semzcnt:等待
semval變為0
的執行緒數。在文章開頭訊號量的結構中已提到。
semadj:指定訊號量針對某個特定程序的調整值。只有
sembuf
結構的sem_flag
指定為sem_undo
後,semadj
才會隨著
sem_op
而更新。
講簡單一點:對某個程序,在指定sem_undo
後,對訊號量
semval
值的修改都會反應到
semadj
上,當該程序終止的時候,核心會根據
semadj
的值,重新恢復訊號量之前的值。
jQuery的部分總結
jquery選擇器返回的物件是jquery物件。jquery物件是乙個封裝了陣列的物件,只不過多了一些屬性。對於jquery物件如果直接操作屬性,那麼只能運算元組中第乙個元素,如果想運算元組中其它元素,則可以通過下標或者get i 方式取出來。不過這時候它已經不是jquery物件,而是dom元素。因...
部分常用的方法
public class numbertest public static void containone int i else public static string revicestr string str return arr.tostring public static void coun...
新書缺的部分
這就是我為了來這裡而丟下的工作,這位聖人說,還有 我放棄的生活。他以前開的是觀光巴士。聖無腸在舞台上,兩臂交在胸前 好瘦他的兩手都能摸到自己背部的正中間 聖無腸站在那裡,只有一層皮 畫在他的骨架子上。鎖骨由胸口突出,大得如同 把手。肋骨在白色t 恤下清晰可見,而皮帶 不是他的屁股 讓藍色牛仔褲不掉下...