首先科普一下常見的幾個(gè)名詞,這些名詞我們經(jīng)常見拴念,但容易搞混椒舵,希望可以幫到大家举反。
串行:原理是一個(gè)接一個(gè)的先進(jìn)先出的進(jìn)行執(zhí)行(FIFO)只會(huì)開啟一條線程
?輸出結(jié)果
并行:任務(wù)以FIFO從序列中移除仗谆,然后并發(fā)運(yùn)行,無順序淑履。它會(huì)自動(dòng)開啟多個(gè)線程同時(shí)執(zhí)行任務(wù)
輸出結(jié)果
同步:同步會(huì)阻塞當(dāng)前線程隶垮,有block的時(shí)候會(huì)先執(zhí)行完block塊 再往下運(yùn)行(不開辟線程)
異步:異步不會(huì)阻塞當(dāng)前線程,有block塊的時(shí)候會(huì)先執(zhí)行完當(dāng)前線程的任務(wù) 再執(zhí)行block塊(開辟線程秘噪,線程的個(gè)數(shù)系統(tǒng)決定)
dispatch_group_t: //// dispatch_group_notify:
輸出結(jié)果:
dispatch_queue_t:
輸出結(jié)果:
dispatch_once: 單例模式
dispatch_after:延時(shí)操作
線程間的通信:
1.GCD
2.NSThread