我正在學習協程,對某些事情感到有些困惑
import kotlinx.coroutines.*
@OptIn(DelicateCoroutinesApi::class)
fun main() {
println("[${Thread.currentThread().name}] In main thread")
GlobalScope.launch {
println("[${Thread.currentThread().name}] In coroutine")
repeat(4) {
println("$it")
}
}
}
當我運行這段代碼時,輸??出有點不可預測,有時我會從 couroutines 中得到輸出,有時我沒有..
有人可以解釋一下是什么原因造成的嗎?謝謝!
uj5u.com熱心網友回復:
我相信有幾個選擇,但問題的核心是主執行緒認為你的程式已經完成,所以它結束了程式。您需要等待協程完成。試試下面的塊。它在繼續之前等待協程完成:
val job = GlobalScope.launch {
println("[${Thread.currentThread().name}] In coroutine")
repeat(4) {
println("$it")
}
}
job.join()
更多資訊可以在這里找到,https://kotlinlang.org/docs/coroutines-basics.html#an-explicit-job
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/453041.html
上一篇:Kotlin中的自動滾動文本視圖