Будет ли сопрограмма Kotlin всегда работать в одном потоке?Если нет, то как мы можем заставить его работать с семантикой Guice Request Scope? - PullRequest
0 голосов
/ 01 марта 2019

Область запроса позволяет нам отслеживать переменные по запросу во время обработки запроса.Но я думаю, что это зависит от локальных переменных потока.Я предполагаю, что использование сопрограмм Kotlin нарушит семантику Guice Injection of Request Scope.

1 Ответ

0 голосов
/ 01 марта 2019

Сопрограммы не всегда выполняются в одном и том же потоке, и поэтому у вас будут проблемы с локальными переменными потока, например, Guice Request Scope.

Но есть возможность передавать локальные переменные потока между сопрограммами: https://github.com/Kotlin/kotlinx.coroutines/blob/master/docs/coroutine-context-and-dispatchers.md#thread-local-data

Я не знаю Guice, и поэтому я не знаю, есть ли способ интегрировать ThreadContextElement в эту среду.

См. Также: Как использовать код, который полагаетсяна ThreadLocal с соплинами Kotlin

...