java 协程_你真的了解kotlin的协程么?
協(xié)程我的理解是協(xié)作的線程,就是說(shuō)與主線程協(xié)作的線程,也就是工作線程。
而協(xié)程的本質(zhì)確實(shí)是這樣。Kotlin協(xié)程的底層就是Java的多線程,協(xié)程就是一個(gè)比較方便的線程框架。協(xié)程這種線程框架有什么好處呢?它的好處是用同步的代碼寫出異步的邏輯,消除了Java中的回調(diào)。Java中是有回調(diào)地獄的。。。
構(gòu)建協(xié)程的函數(shù)有兩個(gè),一個(gè)是launch,一個(gè)是async。其中,async是帶返回值的launch。這點(diǎn)從函數(shù)名也能看出來(lái),launch 更多是用來(lái)發(fā)起一個(gè)無(wú)需結(jié)果的耗時(shí)任務(wù)(如批量文件刪除、創(chuàng)建),這個(gè)工作不需要返回結(jié)果。async 函數(shù)則是更進(jìn)一步,用于異步執(zhí)行耗時(shí)任務(wù),并且需要返回值(如網(wǎng)絡(luò)請(qǐng)求、數(shù)據(jù)庫(kù)讀寫、文件讀寫),在執(zhí)行完畢通過(guò) await() 函數(shù)獲取返回值。
launch與async同時(shí)使用。
用withContext可以解決用多個(gè)嵌套launch引起的回調(diào)地獄問(wèn)題。
我們可以把withContext的內(nèi)容放到一個(gè)單獨(dú)的方法中,但是這個(gè)方法必須用suspend修飾。
總結(jié)
以上是生活随笔為你收集整理的java 协程_你真的了解kotlin的协程么?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: html空格代码_编写灵活、稳定、高质量
- 下一篇: java五子棋代码详解_java打卡9.