進(jìn)程和線程
-
進(jìn)程
- 進(jìn)程是指系統(tǒng)中正在運(yùn)行的一個(gè)應(yīng)用程序。
- 每個(gè)進(jìn)程是獨(dú)立的,擁有自己獨(dú)立的資源。
-
線程
- 進(jìn)程是用來(lái)執(zhí)行任務(wù)的,要想執(zhí)行任務(wù),必須擁有線程。
- 每個(gè)進(jìn)程最少擁有一個(gè)線程,即主線程(UI線程)。
- 在一個(gè)線程中執(zhí)行的多個(gè)任務(wù)是一個(gè)一個(gè)執(zhí)行的,即串行執(zhí)行。耗時(shí)操作(比如打印,加載網(wǎng)絡(luò)數(shù)據(jù)等)會(huì)卡主主線程,造成“卡頓”的現(xiàn)象。
-
多線程
- 一個(gè)進(jìn)程中可以開(kāi)啟多個(gè)線程,多個(gè)線程可以同時(shí)(并行)執(zhí)行任務(wù),提高程序的執(zhí)行效率,充分利用CPU。
- 在移動(dòng)端進(jìn)程中開(kāi)啟太多的線程,CPU調(diào)度的開(kāi)銷會(huì)增大,降低程序的性能。
iOS中多線程的實(shí)現(xiàn)方案,如圖:

Paste_Image.png
- 在iOS多線程(一)中將詳細(xì)講解這四種方案的使用和對(duì)比。