Kotlin 协程总是 运行 在同一个线程上吗?如果不是那么我们如何让它与 Guice Request Scope 语义一起工作?

Will Kotlin coroutine always run on same thread? If not then how can we make it work with Guice Request Scope semantics?

请求范围使我们能够在整个请求处理过程中跟踪请求变量。但我认为这取决于线程局部变量。我假设使用 Kotlin 协程会破坏请求范围语义的 Guice 注入..

协程并不总是 运行 在同一个线程上,因此您会遇到线程局部变量的问题,例如Guice 请求范围。

但是可以在协程之间传递线程局部变量:https://github.com/Kotlin/kotlinx.coroutines/blob/master/docs/coroutine-context-and-dispatchers.md#thread-local-data

我不了解 Guice,所以我不知道是否有办法将 ThreadContextElement 集成到这个框架中。

另请参阅: