多線程
線程,是執(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í)行順序.