1.基本概念
同步:只能在當(dāng)前線程中執(zhí)行任務(wù),不具備開啟新線程的能力
同步函數(shù):
dispatch_sync(dispatch_queue_t _Nonnull queue, <#^(void)block#>)
異步: 可以在新的線程中執(zhí)行任務(wù),具備開啟新線程的能力
異步函數(shù):
dispatch_async(<#dispatch_queue_t _Nonnull queue#>, <#^(void)block#>)
并發(fā)隊(duì)列:
可以讓多個(gè)任務(wù)并發(fā)(同時(shí)執(zhí)行)(自動開啟多個(gè)線程同時(shí)執(zhí)行任務(wù))
并發(fā)功能只有在異步(dispatch_async)函數(shù)下才有效果
串行隊(duì)列:
讓任務(wù)一個(gè)接著一個(gè)的執(zhí)行
異步函數(shù)+并發(fā)隊(duì)列 : 會開啟多條線程,隊(duì)列中的任務(wù)是并發(fā)執(zhí)行
異步函數(shù)+串行隊(duì)列 : 會開一條線程,隊(duì)列中的任務(wù)是串行的
同步函數(shù)+并發(fā)隊(duì)列 : 不會開線程,任務(wù)是串行執(zhí)行的
同步函數(shù)+串行隊(duì)列 : 不會開線程,任務(wù)是串行執(zhí)行的
異步函數(shù)+主隊(duì)列 : 不會開線程,任務(wù)是串行執(zhí)行的
同步函數(shù)+主隊(duì)列 : 死鎖