隊(duì)列:
一、串行隊(duì)列慕蔚;
二丐黄、并行隊(duì)列;
隊(duì)列負(fù)責(zé)任務(wù)的調(diào)度孔飒,不負(fù)責(zé)任務(wù)的執(zhí)行灌闺;
隊(duì)列的特點(diǎn):
- 先進(jìn)先出,排在前面的任務(wù)最先執(zhí)行十偶;
- 串行隊(duì)列:任務(wù)按照順序被調(diào)度菩鲜,前一個(gè)任務(wù)不執(zhí)行完畢,隊(duì)列不會(huì)調(diào)度惦积;
- 并行隊(duì)列:只要有空閑的線程接校,隊(duì)列就會(huì)調(diào)度當(dāng)前任務(wù),交給線程去執(zhí)行狮崩,不需要考慮前面是否有任務(wù)正在執(zhí)行蛛勉,只要有線程可以利用,隊(duì)列就會(huì)調(diào)度任務(wù)睦柴;
- 主隊(duì)列:專門用來在主線程調(diào)度任務(wù)的隊(duì)列诽凌,所以主隊(duì)列的任務(wù)都在主線程來執(zhí)行,主隊(duì)列會(huì)隨著程 序的啟動(dòng)一起創(chuàng)建坦敌;
- 全局隊(duì)列:是系統(tǒng)為了方便程序員開發(fā)提供的侣诵,其工作表現(xiàn)與并發(fā)隊(duì)列一致痢法;
全局隊(duì)列跟并行隊(duì)列的區(qū)別
1、全局隊(duì)列不需要考錄釋放杜顺,在需要的地方直接get就可以獲炔聘椤;
2躬络、在MRC下尖奔,并行隊(duì)列創(chuàng)建出來后,需要手動(dòng)釋放(dispatch_release())穷当;
任務(wù):
一提茁、同步任務(wù);
- 不會(huì)開啟新的線程馁菜,任務(wù)按順序執(zhí)行
二茴扁、異步任務(wù);
-
會(huì)開啟新的線程汪疮,任務(wù)可以并發(fā)的執(zhí)行
任務(wù)在線程中執(zhí)行丹弱;
隊(duì)列和任務(wù)組合
一、串行隊(duì)列铲咨、同步任務(wù)
image.png
- 執(zhí)行結(jié)果如下
image.png
結(jié)論:
串行隊(duì)列躲胳、同步任務(wù):不開啟新線程,任務(wù)依次執(zhí)行(one by one)纤勒;
二坯苹、串行隊(duì)列、異步任務(wù)
image.png
- 執(zhí)行結(jié)果
image.png
結(jié)論:
串行隊(duì)列摇天、異步任務(wù):開啟新線程粹湃,任務(wù)依次執(zhí)行(one by one);
三泉坐、并行隊(duì)列为鳄、同步任務(wù)
image.png
- 執(zhí)行結(jié)果
image.png
結(jié)論:
并行隊(duì)列、同步任務(wù):不開啟新線程腕让,任務(wù)依次執(zhí)行(one by one)孤钦;
三、并行隊(duì)列纯丸、異步任務(wù)
image.png
- 執(zhí)行結(jié)果
image.png