kotlin協(xié)程

1:什么是協(xié)程,kotlin協(xié)程是什么。

2:kotlin開(kāi)啟協(xié)程的方式

launch async+await
兩者最主要區(qū)別

  • 異常處理launch內(nèi)部可能會(huì)拋出異常,因此需用戶手動(dòng)進(jìn)行處理。而async默認(rèn)不會(huì)拋出異常,因?yàn)樗鼤?huì)認(rèn)為你最終必須調(diào)用await來(lái)獲取結(jié)果,因此,async內(nèi)部如果出現(xiàn)異常,用戶需要在await處進(jìn)行捕獲。

  • 返回值:一個(gè)最重大的區(qū)別就是,launch函數(shù)返回的是一個(gè)Job對(duì)象,該對(duì)象主要用于取消協(xié)程運(yùn)行,而async函數(shù)返回的是一個(gè)Deferred對(duì)象,該對(duì)象不僅可以用于取消協(xié)程,更重要的是可以獲取異步任務(wù)返回結(jié)果!這是相當(dāng)有用的一個(gè)特性,如下代碼所示:

協(xié)程作用域的概念
CoroutineScope
GlobalScope
MainScope

創(chuàng)建子協(xié)程域
coroutineScope{}
這個(gè)api主要用于方便地創(chuàng)建一個(gè)子域,并且管理域中的所有子協(xié)程。注意這個(gè)方法只有在所有 block中創(chuàng)建的子協(xié)程全部執(zhí)行完畢后,才會(huì)退出
supervisorScope{}
區(qū)別是supervisorScope 在子協(xié)程失敗時(shí)不影響其他子協(xié)程,而coroutineScope是將異常拋出。

suspend
這種函數(shù)只能在另一個(gè)suspend函數(shù)或者協(xié)程里面被調(diào)用。

3:kotlin協(xié)程的簡(jiǎn)單用法

image.png
image.png

image.png

4:異常處理

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

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

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