我怎么知道特定协程调度程序使用的线程数是多少?

dkz*_*kzm 5 android kotlin kotlin-coroutines

我怎么知道 Dispatchers.IO 当前使用的线程数是多少?

And*_*ilo 2

正如您在这里 看到的那样Dispatchers.IO,它没有自己的线程池,它使用共享池。Dispatchers.Default使用相同的线程池。没有简单的方法来获取当前使用的活动线程Dispatchers.IO。但您可以尝试获取线程共享池内的线程计数。公共线程池正在内部创建CommonPool.kt。它可以创建自己的池或使用ForkJoinPool。池中创建的所有线程都有一个特定的名称。这样你就可以通过名称找到共享池的所有活动线程。

val threads = Thread.getAllStackTraces().keys.filter {
    it.name.startsWith("CommonPool") || it.name.startsWith("ForkJoinPool")
}
threads.size
Run Code Online (Sandbox Code Playgroud)