Четкое определение диспетчера сопрограмм в котлине - PullRequest
0 голосов
/ 09 июня 2019

Я пытаюсь перейти с RxJava на сопрограммы для моих текущих проектов. Итак, я просматривал официальный документ и наткнулся на Dispatchers. Согласно официальному документу, Диспетчеры определяют как:

Контекст сопрограммы включает диспетчера сопрограмм (см. CoroutineDispatcher), который определяет, какой поток или потоки соответствующая сопрограмма использует для ее выполнения. Диспетчер сопрограмм может ограничить выполнение сопрограммы определенным потоком, отправив его пул потоков, или пусть он работает без ограничений.

Что они подразумевают под пулом потоков? Dispatchers.IO или Dispatchers.Default разные темы? Я смущен термином нить здесь. Может кто-нибудь объяснить, как это работает?

Ответы [ 2 ]

1 голос
/ 09 июня 2019

Сопрограммы и темы - это разные понятия. То же самое касается диспетчеров. Диспетчеры больше похожи на исполнителей, которые планируют работу. Эта работа выполняется в потоках Java . Таким образом, эта документация говорит о фактической Java Thread. И пул потоков просто управляет несколькими потоками.

Большинство реализаций исполнителя в java.util.concurrent используют пулы потоков, которые состоят из рабочих потоков. Этот тип потока существует отдельно от запускаемых и вызываемых задач, которые он выполняет, и часто используется для выполнения нескольких задач.

0 голосов
/ 09 июня 2019

Они похожи на Schedulers.io (), Schedulers.computation (), Schedulers.newThread () и тезисы пулов потоков.

...