一锈颗、基本概念
1.計算機操作系統(tǒng)都有的基本概念顷霹,以下概念簡單方式來描述。
1進程: 一個具有一定獨立功能的程序關(guān)于某個數(shù)據(jù)集合的一次運行活動击吱×艿恚可以理解成一個運行中的應用程序。2線程: 程序執(zhí)行流的最小單元覆醇,線程是進程中的一個實體朵纷。3隊列: 裝載線程任務的隊形結(jié)構(gòu)。
2.蘋果官方定義
The term threadisused to refer to a separate pathofexecutionforcode.The term processisused to refer to a running executable, which can encompass multiple threads.線程用于指代一個獨立執(zhí)行的代碼路徑進程用于指代一個可執(zhí)行程序永脓,他可以包含多個線程
Paste_Image.png
3.同步和異步主要影響:能不能開啟新的線程
1同步:只是在當前線程中執(zhí)行任務柴罐,不具備開啟新線程的能力2異步:可以在新的線程中執(zhí)行任務,具備開啟新線程的能力
4.并發(fā)和串行主要影響:任務的執(zhí)行方式
1并發(fā):多個任務并發(fā)(同時)執(zhí)行2串行:一個任務執(zhí)行完畢后憨奸,再執(zhí)行下一個任務
注意:
一個進程可有多個線程革屠。
一個進程可有多個隊列。
隊列可分并發(fā)隊列和串行隊列。
二似芝、iOS多線程對比
每個NSThread對象對應一個線程那婉,真正最原始的線程。1)優(yōu)點:NSThread輕量級最低党瓮,相對簡單详炬。2)缺點:手動管理所有的線程活動,如生命周期寞奸、線程同步呛谜、睡眠等。
NSOperation
自帶線程管理的抽象類枪萄。1)優(yōu)點:自帶線程周期管理隐岛,操作上可更注重自己邏輯。2)缺點:面向?qū)ο蟮某橄箢惔煞荒軐崿F(xiàn)它或者使用它定義好的兩個子類:NSInvocationOperation和NSBlockOperation聚凹。
GCD
Grand CentralDispatch(GCD)是Apple開發(fā)的一個多核編程的解決方法。1)優(yōu)點:最高效齐帚,避開并發(fā)陷阱妒牙。2)缺點:基于C實現(xiàn)。
選擇小結(jié)
1)簡單而安全的選擇NSOperation實現(xiàn)多線程即可对妄。2)處理大量并發(fā)數(shù)據(jù)湘今,又追求性能效率的選擇GCD。3)NSThread本人選擇基本上是在做些小測試上使用剪菱,當然也可以基于此造個輪子摩瞎。