Kotlin協(xié)程(1)協(xié)程介紹

??協(xié)程與線程類似,都可以處理并發(fā)任務(wù)。協(xié)程在很多語言中都支持,但 Java 中并沒有協(xié)程,而 kotlin 中是支持協(xié)程編程。

什么是協(xié)程?

??協(xié)程是一種輕量級的線程,協(xié)程提供了一種不阻塞線程但是可以被掛起的計(jì)算過程。線程阻塞的開銷是巨大的,而協(xié)程掛起基本上沒有開銷。

??在執(zhí)行阻塞任務(wù)時(shí),會(huì)將這種任務(wù)放到子線程中執(zhí)行,執(zhí)行完成回調(diào)主線程、更新UI,這就是異步編程。協(xié)程底層庫也是異步處理阻塞任務(wù),但是這些復(fù)雜的操作被底層庫封裝起來,協(xié)程代碼的程序流是順序的,不再需要一堆回調(diào)函數(shù),就像同步代碼一樣,也便于理解、調(diào)試和開發(fā)。

??線程是搶占式的,線程調(diào)度是操作系統(tǒng)級的,而協(xié)程是協(xié)作式的,協(xié)程調(diào)度是用戶級的。協(xié)程是用戶空間線程,與操作系統(tǒng)無關(guān),所以需要用戶自己去做調(diào)度。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容