【问题标题】:measureTimeMillis produces the same result when being run in a kotlin coroutinemeasureTimeMillis 在 kotlin 协程中运行时产生相同的结果
【发布时间】:2022-10-31 17:20:16
【问题描述】:

无论我是否在两个 doXX 函数中更改delay 的值,println 总是打印 3ms。 我认为所有三个协程都同时运行,所以我增加了最后一个协程的延迟以等待前两个完成。然后我打印变量time 的值。 这是代码。


  fun main() = runBlocking<Unit> {
        val time = measureTimeMillis {

            launch { doSomethingUsefulOne() }
            launch { doSomethingUsefulTwo() }

        }
    launch {
        delay(6000)
        println("Completed in $time ms")
    }
   }
    suspend fun doSomethingUsefulOne() {
    delay(1000L) 
   }

   suspend fun doSomethingUsefulTwo(){
    delay(1000L) 
  }


【问题讨论】:

  • 你的问题到底是什么?

标签: kotlin coroutine


【解决方案1】:

检查docs。顶部的示例与您的非常相似,应该阐明这一点以及协程的其他方面。

问题是launch启动一个新的协程并继续. measureTimeMillis之后的块启动2个协程并继续;这需要 3ms 才能运行。

【讨论】:

    猜你喜欢
    • 2023-03-05
    • 2017-11-08
    • 1970-01-01
    • 2017-04-29
    • 2019-12-18
    • 2019-08-25
    • 2020-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多