【发布时间】:2021-07-13 10:08:58
【问题描述】:
截至目前,Kotlin/Native 是单线程的。因此,下面的代码会被sleep屏蔽掉:
coroutineScope {
launch { plaform.posix._sleep(100000) }
launch { println("Hello") }
}
但是,它有一个新的并发机制,称为Workers。然而,即使使用 worker,主线程也会被长时间运行的 posix 调用阻塞:
coroutineScope {
launch { Worker.start().execute(TransferMode.SAFE, { }, { plaform.posix._sleep(100000) }).consume{ } }
launch { println("Hello") }
}
上面的两个 sn-ps 都不会打印Hello。
异步执行一系列昂贵的阻塞调用的正确方法是什么?
【问题讨论】:
标签: kotlin kotlin-multiplatform kotlin-native