想想下面這個場景怎麽實現。
同時,只有1個線程可以寫入。
同時,允許多個線程讀取。
同時,不允許寫和讀操作。
以上場景是典型的“讀多,寫壹”,經常用於文件等數據的讀寫。監督辦的實施方案如下
Pthread_rwlock:讀寫鎖
Dispatch_barrier_async:異步柵欄調用
等待鎖的線程進入睡眠狀態。
這個函數傳入的並發隊列必須通過dispatch _ queue _ crete自己創建。
如果傳入壹個串行或全局並發隊列,這個函數相當於dispatch_async函數的效果。
示意圖