NSThread中使用鎖相關的筆記

2021-06-17 00:15:55 字數 751 閱讀 9561

1.建立nsthread物件和nslock或者nscondition物件

- (ibaction)touchupinsidebythreadone:(id)sender

2.相關資源鎖的用法

- (void)runelse

[ticketscondition unlock];

//加鎖方法二,使用nslock物件

[thelock lock];

if(tickets >= 0)else

[thelock unlock];

//加鎖方法三,使用@synchronized(self)

@synchronized(self)

else}}

}

如果沒有執行緒同步的lock,賣票數可能是-1.加上lock之後執行緒同步保證了資料的正確性。以上均是0.09s執行一次。

3.使用nsconditionilock中的signal和wait控制線程1和2的執行頻率,即使用執行緒3去喚醒其他兩個執行緒鎖中的wait。

- (ibaction)touchupinsidebythreadone:(id)sender 

-(void)run3

}- (void)runelse

[thelock unlock];

[ticketscondition unlock];

}}

參考:

java的執行緒 鎖相關

volatitle 這樣的一行 volatitle instance new singleton instance是volatile變數彙編後 是這樣子的 0x01a3de1d movb 0 0,0 1104800 esi 0x01a3de24 lock addl 0 0,esp 當中有個lock指...

死鎖相關知識的學習

一組程序中,每個程序都無限等待被改組程序中另乙個程序所占有的資源,因而永遠無法得到的資源,這種現象稱為程序死鎖,這一組程序就稱為死鎖程序。如果死鎖發生,會浪費大量系統資源,甚至導致系統崩潰。需要注意 1.資源數量有限 鎖和訊號量錯誤使用 1.1資源的使用方式 申請 分配 使用 釋放 模式 可消耗資源...

Mysql InnoDB儲存引擎的鎖相關

mysql rr 為啥能隔離幻讀 innodb提供了一致性的非鎖定讀 行級鎖支援 lock 與latch lock 行級鎖 意向鎖 事務在更細的粒度上加鎖 一致性的非鎖定讀 一致性鎖定讀 自增長與鎖 外來鍵和鎖 行鎖的三種演算法 gap lock 間隙鎖,鎖定乙個範圍,不包含記錄本身 next ke...