iOS多線程編程——GCD與NSOperation

多線程

線程,是執(zhí)行程序最基本的單元,它有自己棧和寄存器.在十個線程之間來回切換,就意味著有十組棧和寄存器中的值需要不斷地被備份、替換。效率比較低

異步方法也不一定新開線程,在主隊列開啟一個異步線程,就在主線程中執(zhí)行

最后調(diào)用dispatch_group_notify,標(biāo)示執(zhí)行的分組中的任務(wù)全部執(zhí)行完畢了,屬于這個 group 的任務(wù)是否已經(jīng)全部執(zhí)行完,如果是則返回 0,否則返回非 0。

dispatch_group_wait(group: dispatch_group_t, _ timeout: dispatch_time_t) -> Int

有DISPATCH_TIME_NOW和DISPATCH_TIME_FOREVER兩個參數(shù)值,前者表示立刻檢查屬于這個 group 的任務(wù)是否已經(jīng)完成,后者則表示一直等到屬于這個 group 的任務(wù)全部完成。

dispatch_after,需要注意的是和dispatch_after僅表示在指定時間后提交任務(wù),而非執(zhí)行任務(wù)。

dispathc_once函數(shù)可以確保某個 block 在應(yīng)用程序執(zhí)行的過程中只被處理一次,而且它是線程安全的。

開始執(zhí)行dispatch_barrier_async中的任務(wù),這時候即使向并行隊列提交任務(wù),也不會執(zhí)行

dispatch_barrier_async中的任務(wù)執(zhí)行完成后,并行隊列恢復(fù)正常。

operation2.addDependency(operation1),任務(wù)添加依賴關(guān)系,決定任務(wù)的執(zhí)行順序.

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