Kotlin:创建自定义CoroutineContext

问题描述 投票:1回答:1

我在我的API后端使用Kotlin。我不想在common pool中运行db查询。基本上,我想创建一个CoroutineContext,它有许多与数据库maximumPoolSize匹配的线程。

实现这一目标的最佳方法是什么(通常和我的特定用例)?我知道Kotlin提供开箱即用的contexts,但是创建我自己的最佳方法是什么?

额外的问题:如果我的jdbc连接池大小为3,那么使用线程池大小为3的coroutinecontext是否有意义?这可以保证最好的并发性吗?

jdbc kotlin kotlinx.coroutines
1个回答
4
投票

您可以使用CoroutineContext创建一个由具有固定线程数的线程池支持的newFixedThreadPoolContext

val myContext = newFixedThreadPoolContext(nThreads = 3, name = "My JDBC context")

是的,将线程池的大小与连接池的大小相匹配似乎是一个好主意,因为这样你的线程(假设它们每次都使用一个连接)将始终为它们准备好数据库连接 - here's博客帖子暗示相同。

© www.soinside.com 2019 - 2024. All rights reserved.