Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 是否有一个创建新线程的corutines上下文,其上限与ThreadPoolExecutor相同?_Kotlin_Kotlin Coroutines - Fatal编程技术网

Kotlin 是否有一个创建新线程的corutines上下文,其上限与ThreadPoolExecutor相同?

Kotlin 是否有一个创建新线程的corutines上下文,其上限与ThreadPoolExecutor相同?,kotlin,kotlin-coroutines,Kotlin,Kotlin Coroutines,如果有更多的请求进来,我想让我的应用程序自动伸缩一点,但我也希望使用Kotlin提供的非阻塞协程 从文档来看,从stdlib获取上下文的唯一方法似乎是使用一个或两个创建实例,但似乎就是这样 有没有一种方法可以让java中的ThreadPoolExecutor在Kotlin中的CoroutineContext达到给定的限制之前,只启动新线程?这是关于协同程序的正确方式吗?您可以将任何执行者转换为协同程序上下文: val MyContext = myExecutor.asCoroutineDispa

如果有更多的请求进来,我想让我的应用程序自动伸缩一点,但我也希望使用Kotlin提供的非阻塞协程

从文档来看,从stdlib获取上下文的唯一方法似乎是使用一个或两个创建实例,但似乎就是这样


有没有一种方法可以让java中的ThreadPoolExecutor在Kotlin中的CoroutineContext达到给定的限制之前,只启动新线程?这是关于协同程序的正确方式吗?

您可以将任何
执行者
转换为协同程序上下文:

val MyContext = myExecutor.asCoroutineDispatcher()
这是关于合作的正确方式吗

这更多地取决于您使用协同路由所做的工作,而不是您使用的线程池类型


正如您所描述的,我在应用程序中使用了一个缓存线程池。这是一款Android应用程序,所以保持苗条很重要。我使用线程池来阻止网络操作和CPU密集型工作,这些工作必须在GUI线程之外完成。在这样的用例中,您不会
launch(MyThreadPool)
您的协同程序,而是
launch(UI)
然后
withContext(MyThreadPool){heavyWork}

我的工作负载在服务器端。具体来说,它针对discord bot,并为每个传入事件启动一个协程。在协程中没有阻塞IO,只是CPU的使用率很低。唯一会发生的IO是非阻塞,或者更确切地说,阻塞是在另一个库处理的线程中完成的。你有没有叫“暂停乐趣”s?现在没有,但我会的。我想现在我更多地是将它们作为一种简单的方式来将作业提交到kotlin中的线程池中。但是还有另一个区域正在进行大量的暂停,所以我肯定会在那里使用它。