【发布时间】:2020-07-19 21:30:31
【问题描述】:
我是Android Coroutines 的新手。我一直在从official docs 阅读它并找到了这个注释
重要提示:使用使用线程池的调度程序,例如 Dispatchers.IO 或 Dispatchers.Default 不保证 块从上到下在同一个线程上执行。在一些 在这种情况下,Kotlin 协程可能会将执行转移到另一个线程 在暂停和恢复之后。这意味着线程局部变量可能 不指向整个 withContext() 块的相同值。
但我没有得到这个具体的句子
这意味着线程局部变量可能 不指向整个 withContext() 块的相同值
谁能给我看这个场景的例子吗?
【问题讨论】:
-
withContext(IO) { println(currentThread().name; delay(100); println(currentThread().name }您可以将currentThread()替换为任何其他ThreadLocal支持的值。
标签: android multithreading kotlin kotlin-coroutines