GCD

1.什么是GCD

Grand Central Dispatch (GCD) 是 Apple 開發(fā)的一個(gè)多核編程的解決方法。該方法在 Mac OS X 10.6 雪豹中首次推出,并隨后被引入到了 iOS4.0 中。GCD 是一個(gè)替代諸如 NSThread, NSOperationQueue, NSInvocationOperation 等技術(shù)的很高效和強(qiáng)大的技術(shù)。
GCD 和 block 的配合使用,可以方便地進(jìn)行多線程編程。

嗯嗯,這段話來自 唐巧的技術(shù)博客

iOS中多線程實(shí)現(xiàn)多線程的一種方式。

2.并發(fā)&并行

所謂的“并發(fā)”,英文翻譯是concurrent。要注意和“并行(parallelism)”的區(qū)別。

并發(fā)指的是一種現(xiàn)象,一種經(jīng)常出現(xiàn),無可避免的現(xiàn)象。它描述的是“多個(gè)任務(wù)同時(shí)發(fā)生,需要被處理”這一現(xiàn)象。它的側(cè)重點(diǎn)在于“發(fā)生”。

比如有很多人排隊(duì)等待檢票,這一現(xiàn)象就可以理解為并發(fā)。

就是,在同一個(gè)時(shí)間點(diǎn),發(fā)生了許多件事情。(或者說,產(chǎn)生了許多個(gè)任務(wù))在一個(gè)時(shí)間點(diǎn),有好多人同時(shí)出生,來到這個(gè)世界。(世界很美好,不要做碼農(nóng)啊~)。

并行指的是一種技術(shù),一個(gè)同時(shí)處理多個(gè)任務(wù)的技術(shù)。它描述了一種能夠同時(shí)處理多個(gè)任務(wù)的能力,側(cè)重點(diǎn)在于“運(yùn)行”。

比如景點(diǎn)開放了多個(gè)檢票窗口,同一時(shí)間內(nèi)能服務(wù)多個(gè)游客。這種情況可以理解為并行。

就是,在同一個(gè)時(shí)間點(diǎn),有多個(gè)任務(wù)在執(zhí)行。(同一時(shí)間內(nèi)能服務(wù)多個(gè)游客。)同一時(shí)間內(nèi),許多游客都在游玩。

3.并行&串行

串行: 并行的反義詞就是串行,表示任務(wù)必須按順序來,一個(gè)一個(gè)執(zhí)行,前一個(gè)執(zhí)行完了才能執(zhí)行后一個(gè)。

4.同步&異步

同步和異步,就是在問。需要任務(wù)執(zhí)行完,再返回嗎?需要,就是同步。不需要就是異步。

如在第一行調(diào)用foo()方法,那么程序運(yùn)行到第二行的時(shí)候,foo方法肯定是執(zhí)行完了。這就是同步。

所謂的異步,就是允許在執(zhí)行某一個(gè)任務(wù)時(shí),函數(shù)立刻返回,但是真正要執(zhí)行的任務(wù)稍后完成。那么上面的例子,執(zhí)行到第二行時(shí),foo()方法或許還沒有執(zhí)行完成。

參考鏈接

iOS多線程編程 bestswifter

標(biāo)哥的技術(shù)博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容