Kotlin 協程學習記錄

2021-10-23 15:12:26 字數 1100 閱讀 6318

//kotlin 協程

implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.2.1"

1、runblocking:會一直阻塞到塊中的**執行完

runblocking 

}job.join()//等待直到子協程執行結束  主協程與後台作業的持續時間沒有任何關係了

log.e("zxy", "張老爺")

}

2、lauch:開啟乙個工作協程job

3、job.cancel() // 取消乙個協程

4、job.cancelandjoin() // 取消乙個協程並且等待它結束

5、job.join://等待直到子協程執行結束,結構化的併發,無結果

6、delay:非阻塞的函式,掛起,協程進入執行緒池空閒執行緒,類似於sleep

7、repeat:協程中迴圈

8、async和await:協程中非同步執行及等待非同步結果再執行,結構化的併發,有結果

globalscope.launch 

log.e("zxy", async.await())//等待async執行的結果

}

9、coroutinescope :(感覺作用不大)執行緒作用域,不會阻塞當前執行緒,所有已啟動子協程執行完畢之前不會結束

10、suspend:掛起函式,呼叫suspend方法, 非同步的資料像同步一樣return了

//掛起方法 

suspend fun download()

11、withcontext(noncancellable) ,在finally中,關閉乙個檔案、取消乙個作業、或是關閉任何一種通訊通道

12、withtimeout和withtimeoutornull操作超時

runblocking 

}}

13、send和receive的使用

runblocking 

repeat(5) ")

}}

Kotlin協程筆記

會阻塞主線程,等待協程執行完,才會繼續執行主線程 不會阻塞主線程,返回job型別的物件 var job globalscope.launch 3 async 用於啟動乙個非同步協程任務,與launch用法基本一樣,不阻塞執行緒,區別在於 async的返回值是deferred,將最後乙個封裝成了該物件...

Kotlin協程快速入門

協程,全稱可以譯作協同程式,很多語言都有這個概念和具體實現,之前入門python的時候接觸過,而kotlin其實也早就有這個擴充套件功能庫了,只不過之前一直處於實驗階段,不過前段時間1.0的正式版終於出了,網上的相關部落格也多了起來,經過這幾天的學習我也來做下小結吧。首先貼下kotlin協程的官方g...

Kotlin 協程輕量 協程與執行緒對比

本例使用協程和執行緒兩個方式執行一段任務 協程 任務是每秒列印出兩個 執行100 000個任務 test fun testmet runblocking println val end system.currenttimemillis println end time end println 耗時 ...