@大俠Tan 并發(fā)是程序同時(shí)執(zhí)行多個(gè)任務(wù),平時(shí)我們也用并發(fā)來形容程序的這個(gè)特性,并發(fā)和并行的唯一區(qū)別在于系統(tǒng)底層內(nèi)核的實(shí)現(xiàn)上。多核處理器因?yàn)橛卸鄠€(gè)內(nèi)核,可以在同一"時(shí)刻"執(zhí)行多個(gè)任務(wù)(每個(gè)任務(wù)分?jǐn)偟讲煌瑑?nèi)核來處理),這是并行。而對于單核處理器,系統(tǒng)只能把單核cpu的執(zhí)行時(shí)間分割成多個(gè)時(shí)間片,來交替處理多個(gè)任務(wù),以至于從應(yīng)用上層來看是多個(gè)任務(wù)是同時(shí)執(zhí)行的假象,這是并發(fā)。字面上,同時(shí)執(zhí)行多個(gè)任務(wù),我們都叫并發(fā)
多線程和異步是兩個(gè)層面上的概念,多線程是并發(fā)的具體邏輯實(shí)現(xiàn),異步主要強(qiáng)調(diào)程序邏輯調(diào)用的先后順序。單個(gè)線程上可以有多個(gè)邏輯調(diào)用,如果是"同步",幾個(gè)邏輯會(huì)排著隊(duì)一個(gè)一個(gè)執(zhí)行(前面的邏輯執(zhí)行完了才執(zhí)行后面的),如果是"異步",只要前面的邏輯調(diào)起了,后面邏輯就可以調(diào)起執(zhí)行,沒存在等待前面邏輯執(zhí)行完的那段時(shí)間。不管是同步還是異步的邏輯調(diào)用,都是指針對單個(gè)線程而言的。
感謝關(guān)注,有問題繼續(xù)交流~~~
并發(fā) 并行 同步 異步 多線程 阻塞 非阻塞前言 最近iOS開發(fā)群里兄弟們討論網(wǎng)絡(luò)層這塊的東西比較多,問題主要集中在請求、線程、隊(duì)列這幾塊。中途發(fā)現(xiàn)對并發(fā)、異步、多線程等這些概念有一定的誤解,特寫此篇文章以作闡釋。 這...