gpt4 book ai didi

kotlin - 是否有Corutines的上下文可以创建新线程,而该线程最多可以达到ThreadPoolExecutor之类的限制?

转载 作者:行者123 更新时间:2023-12-02 13:14:19 25 4
gpt4 key购买 nike

如果有更多请求,我想让我的应用程序自动扩展一点,但是我也想使用Kotlin提供的非阻塞协程。

从文档中看,从stdlib中获取Context的唯一方法似乎是同时使用 newSingleThreadContext newFixedThreadPoolContext 来创建 ThreadPoolDispacher 实例,但这似乎就是事实。

是否有办法获得类似于Java中的ThreadPoolExecutor的行为,如果当前在Kotlin中对CoroutineContext的给定限制之前,没有线程可以处理新的线程,则它仅会启动新线程?这是关于协程的正确方法吗?

最佳答案

您可以将任何Executor转换为协程上下文:

val MyContext = myExecutor.asCoroutineDispatcher()

Is this even the right way to thing about Coroutines?



这更多地取决于您对协程进行的操作,而不是所使用的线程池。

正如您所描述的,我在应用程序中使用的是缓存的线程池。这是一个Android应用,因此保持 slim 很重要。我既使用线程池来阻止网络操作,又使用必须在GUI线程之外执行的CPU密集型工作。在这种用例中,您不需要 launch (MyThreadPool)您的协程,而是 launch(UI)然后 withContext(MyThreadPool) { heavyWork }

关于kotlin - 是否有Corutines的上下文可以创建新线程,而该线程最多可以达到ThreadPoolExecutor之类的限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49069230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com