GCD dispatch_barrier_async

dispatch_barrier_async這個方法。barrier 這個單詞的意思是障礙,攔截的意思,也即是說dispatch_barrier_async一定是有攔截事件的作用。

dispatch_queue_t concurrentQueue = dispatch_queue_create("my.concurrent.queue", DISPATCH_QUEUE_CONCURRENT);

dispatch_async(concurrentQueue, ^(){

NSLog(@"dispatch-1");

});

dispatch_async(concurrentQueue, ^(){

NSLog(@"dispatch-2");

});

dispatch_barrier_async(concurrentQueue, ^(){

NSLog(@"dispatch-barrier");

});

dispatch_async(concurrentQueue, ^(){

NSLog(@"dispatch-3");

});

dispatch_async(concurrentQueue, ^(){

NSLog(@"dispatch-4");

});

dispatch_barrier_async 作用是在并行隊列中,等待前面兩個操作并行操作完成,這里是并行輸出

dispatch-1,dispatch-2

然后執(zhí)行

dispatch_barrier_async中的操作,(現(xiàn)在就只會執(zhí)行這一個操作)執(zhí)行完成后,即輸出

"dispatch-barrier,

最后該并行隊列恢復(fù)原有執(zhí)行狀態(tài),繼續(xù)并行執(zhí)行

dispatch-3,dispatch-4

最后編輯于
?著作權(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)容