在Kotlin中清楚地定义了协程分派器

时间:2019-06-09 07:22:39

标签: multithreading kotlin kotlin-coroutines

我正在尝试从RxJava迁移到我当前项目的协程。因此,我正在查阅官方文档,并且遇到了Dispatchers。根据官方文件,他们将调度程序定义为:

  

协程上下文包括协程调度程序(请参阅   CoroutineDispatcher)确定哪个线程   相应的协程用于执行。协程调度员   可以将协程执行限制在特定线程中,将其分派给   线程池,或者让它不受限制地运行。

线程池是什么意思? Dispatchers.IODispatchers.Default是不同的线程吗?我对这里的“线程”一词感到困惑。有人可以解释它的工作原理吗?

2 个答案:

答案 0 :(得分:1)

协程和线程是不同的概念。调度员也是如此。调度员更像是执行者来安排工作。这项工作在 Java 中的线程上运行。因此,本文档讨论了实际的 Java Threadthread pool仅管理多个线程。

  

java.util.concurrent中的大多数执行程序实现都使用线程池,该线程池由工作线程组成。这种线程与它执行的Runnable和Callable任务分开存在,通常用于执行多个任务。

答案 1 :(得分:0)

它们类似于Schedulers.io(),Schedulers.computation(),Schedulers.newThread()和抽象线程池。