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

(通常是针对我的特定用例)完成此操作的最佳方法是什么?我知道Kotlin开箱即用提供contexts,但是创建自己的最佳方法是什么?

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

最佳答案

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

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

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

关于jdbc - Kotlin:创建自定义的CoroutineContext,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50866623/

10-12 06:20