小编Any*_*ker的帖子

Kotlin 协程顺序执行

我正在尝试创建一个对象,它可以在自己的线程中顺序执行一些任务,就像它是一个队列一样。

以下示例仅用于演示我的设置,可能完全错误。

class CoroutinesTest {
    fun a() {
        GlobalScope.launch {
            println("a started")
            delay(1000)
            println("a completed")
        }
    }

    fun b() {
        GlobalScope.launch {
            println("b started")
            delay(2000)
            println("b completed")
        }
    }

    fun complex() {
        a()
        b()
    }
}

fun main() {
    runBlocking {
        val coroutinesTest = CoroutinesTest()

        coroutinesTest.complex()

        delay(10000)
    }
}
Run Code Online (Sandbox Code Playgroud)

现在这段代码打印以下内容

a started
b started
a completed
b completed
Run Code Online (Sandbox Code Playgroud)

这意味着ab并行执行。方法abcomplex可以从不同的线程调用。当然,该complex方法也应该支持这个概念。现在,我需要一种机制,允许我一次只执行一个任务,这样我就可以获得以下输出:

a started
a completed
b started
b completed
Run Code Online (Sandbox Code Playgroud)

我做了一些研究,认为 …

kotlin kotlin-coroutines

19
推荐指数
1
解决办法
1万
查看次数

标签 统计

kotlin ×1

kotlin-coroutines ×1