GCD基礎(chǔ)總結(jié)三

上代碼~


dispatch_group

在開啟了多線程執(zhí)行任務(wù)時,若使用了dispatch_group_notify、dispatch_group_enter、dispatch_group_leave,也能有效的保證了等所有的子線程任務(wù)處理完后,有一個處理最后結(jié)果的地方。

dispatch_group_enter:通知group,下面的任務(wù)馬上要放到group中執(zhí)行了。

dispatch_group_leave:通知group,任務(wù)完成了,該任務(wù)要從group中移除了。

這兩種通知可以在多線程間自由穿梭的。


dispatch_semaphore

當(dāng)我們在處理一系列線程的時候,當(dāng)數(shù)量比較大,在以前我們可能會選擇使用NSOperationQueue來處理并發(fā)控制,但如何在GCD中快速的控制并發(fā)呢?其實就是dispatch_semaphore


因為我們設(shè)置的初始值是2 所以在添加了倆個任務(wù)之后,第三個任務(wù)在wait 的位置判斷信號量值已經(jīng)等于0,所以會等待。等上線的延時1秒操作完成之后,會給信號量值加1,才會完成任務(wù)3。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容