【发布时间】:2019-12-21 18:00:50
【问题描述】:
我下面有3个sn-p
- 范围发射
fun main() = CoroutineScope(Dispatchers.IO).launch { runMe() }
fun rumMe() = doSomething()
- 范围启动并暂停
fun main() = CoroutineScope(Dispatchers.IO).launch { runMe() }
suspend fun rumMe() = doSomething()
- 使用suspend 和withContext 启动范围
fun main() = CoroutineScope(Dispatchers.IO).launch { runMe() }
suspend fun rumMe() = withContext(Dispatchers.Default) { doSomething() }
我看到它们在与主线程不同的线程中启动,并且异步运行而不阻塞主线程。
我想知道他们有什么不同?如果它们都相同,那么 1 是最好的。如果没有,我应该什么时候使用 2 或 3?
我试着读了这篇,看不清楚https://medium.com/@elizarov/blocking-threads-suspending-coroutines-d33e11bf4761
【问题讨论】:
标签: multithreading kotlin coroutine kotlin-coroutines