相关疑难解决方法(0)

Kotlin协同程序如何在内部工作?

Kotlin如何在内部实现协同程序?

Coroutines被称为线程的"更轻版本",我知道它们在内部使用线程来执行协程.

当我使用任何构建器函数启动协程时会发生什么?

这是我对运行此代码的理解:

GlobalScope.launch {       <---- (A)
    val y = loadData()     <---- (B)  // suspend fun loadData() 
    println(y)             <---- (C)
    delay(1000)            <---- (D)
    println("completed")   <---- (E)
}
Run Code Online (Sandbox Code Playgroud)
  1. Kotlin ThreadPool在开始时有一个预定义.
  2. (A),Kotlin开始在下一个可用的免费线程中执行协程(Say Thread01).
  3. (B),Kotlin停止执行当前线程,并loadData()在下一个可用的空闲线程(Thread02)中启动挂起功能.
  4. (B)执行后返回时,科特林延续了协程的下一个可用的空闲线程(Thread03).
  5. (C)执行Thread03.
  6. (D),Thread03停止.
  7. 在1000ms之后,(E)在下一个免费线程上执行,比方说Thread01.

我理解正确吗?或者协程以不同的方式实现?

kotlin kotlin-coroutines

14
推荐指数
2
解决办法
3012
查看次数

标签 统计

kotlin ×1

kotlin-coroutines ×1