進(jìn)程和線程的概念
進(jìn)程:程序是運(yùn)行在內(nèi)存中,進(jìn)程負(fù)責(zé)分配內(nèi)存
線程:負(fù)責(zé)程序中代碼的實(shí)際運(yùn)行榔袋。分類:主線程(一條)周拐,子線程(多條),并能自動(dòng)回收凰兑。
隊(duì)列的概念
隊(duì)列不是線程妥粟,也不表示對(duì)應(yīng)的cpu,隊(duì)列就是負(fù)責(zé)調(diào)度的吏够,誰空閑就把任務(wù)給誰勾给。
隊(duì)列的分類
串行隊(duì)列(serial),任務(wù)按照先進(jìn)先出的順序一個(gè)個(gè)地執(zhí)行滩报。在串行隊(duì)列中,無論同步還是異步锦秒,執(zhí)行效果一樣露泊。
并行隊(duì)列(concurrent),任務(wù)執(zhí)行時(shí)并發(fā)的,順序無法掌握旅择,在相同的時(shí)間間隔執(zhí)行不一樣的任務(wù)惭笑。
執(zhí)行方式
同步/異步:考慮的是任務(wù)在當(dāng)前線程執(zhí)行還是開啟新的線程執(zhí)行。
gcd幾個(gè)隊(duì)列
1.主線程
屬于串行隊(duì)列生真,同步執(zhí)行時(shí):線程會(huì)發(fā)生阻塞沉噩,因?yàn)橹骶€程不會(huì)結(jié)束,除非程序被“殺死”柱蟀,所以由于執(zhí)行中川蒙,由于cpu沒有分配時(shí)間來執(zhí)行任務(wù),所以導(dǎo)致線程阻塞长已。
異步執(zhí)行:不創(chuàng)建新的線程畜眨,任務(wù)的執(zhí)行保持隊(duì)列。
注意:UI的更新在該線程執(zhí)行术瓮。
2.全局線程:
所以程序都可以使用康聂,直接get就行。屬于并發(fā)隊(duì)列胞四,沒有固定的名稱恬汁。