是否有一种方法可以在Android上创建(或以某种方式获取)Kotlin协程分派器,其功能类似于Default,但不涉及触摸UI线程核心?
因此,基本上,我面临着繁重的计算任务,我想使用尽可能多的CPU资源来处理这些任务,而又不影响UI性能。
通过Dispatchers.Default
,我可以从系统中获取最多的资源,但与此同时,我的UI却变得更慢。
这里可以应用哪些最佳实践?
答案 0 :(得分:0)
您可以使用具有自定义线程池的调度程序,如下所示:
val threads = 4
val dispatcher = Executors.newFixedThreadPool(threads).asCoroutineDispatcher()
答案 1 :(得分:0)
我发现,我的问题解决方案不是在JVM领域,而是在NDK中。本地库正在将CPU加载到100%,基本上,我似乎无法从Java / Kotlin做到这一点。答案似乎在C代码中某个地方,这超出了我的能力。
我还必须提到Executors.newFixedThreadPool((Runtime.getRuntime().availableProcessors() - 1).coerceAtLeast(1)).asCoroutineDispatcher()
解决方案。在我看来,这对于遇到类似问题的人可能会有帮助。