dispatch_semaphore 用法

dispatch_semaphore只有三個(gè)方法:

//創(chuàng)建信號(hào)量
dispatch_semaphore_create
//發(fā)送信號(hào)量
dispatch_semaphore_signal
//等待信號(hào)量
dispatch_semaphore_wait

執(zhí)行dispatch_semaphore_create 會(huì)根據(jù)傳入的long型參數(shù)創(chuàng)建對(duì)應(yīng)數(shù)目的信號(hào)量;執(zhí)行 dispatch_semaphore_signal 會(huì)增加一個(gè)信號(hào)量;執(zhí)行dispatch_semaphore_wait 則會(huì)減少一個(gè)信號(hào)量,如果信號(hào)量是0,就會(huì)根據(jù)傳入的等待時(shí)間來等待。
例如:
dispatch_semaphore_create(1) 創(chuàng)建一個(gè) semaphore 信號(hào)總量為 1

dispatch_semaphore_wait(lock, DISPATCH_TIME_FOREVER) 如果信號(hào)總量為0,進(jìn)入等待狀態(tài); 信號(hào)量大于0時(shí),繼續(xù)執(zhí)行代碼,同時(shí)將信號(hào)總量 -1

dispatch_semaphore_signal(lock); 發(fā)送信號(hào)量,信號(hào)量 +1

這樣一解釋,不知道你有沒有醍醐灌頂。

參考:http://www.lxweimin.com/p/c194ca08776c
http://www.lxweimin.com/p/098328f17ff6

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容