在GCD出現之前,有兩種方法
第一種是采用內置的“同步塊”(synchronization block)
Snip20160726_1.png
Snip20160726_2.png
第二種是直接使用NSLock
Snip20160726_3.png
Snip20160726_5.png
上面兩種方法都很好,不過有缺陷。在極端情況下,同步塊會導致死鎖,效率也不高。
替代方法就是GCD,它能以簡單,高效的形式為代碼加鎖
1.可以這樣做,使用“串行同步隊列”,將讀取操作與寫入操作都放在同一個隊列里面,既可以保證數據同步
Snip20160726_12.png
Snip20160726_13.png
2.最好的做法 利用并發隊列和柵欄 。(獲取方法可以并發執行,保證設置方法和獲取方法不能并發執行,就可以保證數據安全)
Snip20160726_14.png
Snip20160726_19.png
Snip20160726_20.png
Snip20160726_21.png
Snip20160726_18.png
--摘自 編寫高質量oc52個有效方法-41條
不錯的書~