科特琳协程多次发射

全尺寸

如何在Kotlin中像多个线程一样进行多次启动

我想让它first second永远同时工作!!

像这样的代码...

runBlocking {

    // first
    launch{
      first()
    }

    // second
    launch{
       second()
    }
}


suspend fun first(){
    // do something 
    delay(1000L)

    // Recursive call
    first() 
}

suspend fun second(){
    // do something 
    delay(1000L)

    // Recursive call
    second() 
}

如果示例代码是应用程序中唯一正在运行的代码,则该示例代码已经可以使用。如果您需要这两个与您的应用程序并行运行的方法,请将它们包装在GlobalScope.launch

GlobalScope.launch {

   launch { first() }
   launch { second() }
}

这将一直运行,直到被取消和/或引发内部异常。如果协程内部不需要太多资源并在使用时正确释放它们,那么StackOverFlow永远不会有问题。


除了递归代码外:尝试按照注释中的建议进行循环。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章