進(jìn)程:是指在系統(tǒng)中正在運(yùn)行的一個(gè)應(yīng)用程序
線程:1個(gè)進(jìn)程要想執(zhí)行任務(wù),必須得有線程(每1個(gè)進(jìn)程至少要有1條線程);1個(gè)進(jìn)程的任務(wù)都要在線程中執(zhí)行
多線程:1個(gè)進(jìn)程中可以開(kāi)啟多條線程轧抗,每條線程可以并行(同時(shí))執(zhí)行不同的任務(wù)
進(jìn)程->車間 ? 線程->車間工人
多線程原理:
iOS中多線程的實(shí)現(xiàn)方案
NSThread
線程的狀態(tài)
控制線程狀態(tài)
當(dāng)多個(gè)線程運(yùn)行的時(shí)候,要加鎖
線程間的通信
在子線程中運(yùn)行方法
上面標(biāo)記的方法也可以這樣寫(xiě)
GCD
異步函數(shù)+并發(fā):可以同時(shí)開(kāi)啟多條線程
和上圖中的創(chuàng)建一個(gè)并發(fā)隊(duì)列是一樣的
同步函數(shù)+并發(fā)隊(duì)列:不會(huì)開(kāi)啟新的線程
異步函數(shù)+串行隊(duì)列:串行隊(duì)列只能創(chuàng)建,沒(méi)有全局
同步函數(shù)+串行隊(duì)列:不會(huì)開(kāi)啟新的線程畏陕,在當(dāng)前線程中執(zhí)行任務(wù)
異步函數(shù)+主隊(duì)列:只在主線程中執(zhí)行任務(wù)
同步函數(shù)+主隊(duì)列:
標(biāo)記中是比較常用的
GCD線程之間的通信
// 首先是創(chuàng)建一個(gè)隊(duì)列組