dat*_*ode 3 multithreading threadpool kotlin kotlin-coroutines
我正在使用异步构造来并行执行某些任务。
ids.forEach { id -> val result = async { getResult(id) } }
对此我有2个问题。
val context = newFixedThreadPoolContext(15, "custom pool")
如何将此池传递给异步构造。请指教。
默认情况下,async()从调用它的上下文继承协程调度程序。如果您创建一个单线程上下文并在其中调用,async()那么它将在相同的单线程环境中运行。
在某些情况下,调度程序可能未指定,例如,如果您使用GlobalScope.async(). 在这种情况下Dispatchers.Default使用。文档说:
默认情况下,此调度程序使用的最大线程数等于 CPU 核心数,但至少为两个。
与您自己的调度程序一起使用async()非常简单:
async(context) { getResult(id) }
| 归档时间: | 
 | 
| 查看次数: | 2202 次 | 
| 最近记录: |