先來說一下隊(duì)列和任務(wù):
- 隊(duì)列分為串行和并行
- 任務(wù)的執(zhí)行分為同步和異步
這兩兩組合就成為了串行隊(duì)列同步執(zhí)行蚁滋,串行隊(duì)列異步執(zhí)行,并行隊(duì)列同步執(zhí)行焦匈,并行隊(duì)列異步執(zhí)行
而異步是多線程的代名詞沼填,異步在實(shí)際引用中會(huì)開啟新的線程,執(zhí)行耗時(shí)操作
那我們先來知道一個(gè)非常重要的事情:
隊(duì)列只是負(fù)責(zé)任務(wù)的調(diào)度括授,而不負(fù)責(zé)任務(wù)的執(zhí)行
任務(wù)是在線程中執(zhí)行的
隊(duì)列和任務(wù)的特點(diǎn):
隊(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)建,我們只需get即可
全局隊(duì)列:是系統(tǒng)為了方便程序員開發(fā)提供的漓帚,其工作表現(xiàn)與并發(fā)隊(duì)列一致母债。
同步執(zhí)行:不會(huì)開啟新的線程,任務(wù)按順序執(zhí)行
異步執(zhí)行:會(huì)開啟新的線程尝抖,任務(wù)可以并發(fā)的執(zhí)行