【发布时间】:2026-02-08 22:05:02
【问题描述】:
我有一个类似这样的代码:
for (n <- 1 to 1000) {
someFuture map {
// some other stuff
}
这是一段基本的代码,运行良好。但是,somefuture 对数据库进行了一些查询,并且数据库无法并行接收多个查询,这是之前发生的情况(它会产生许多线程来执行 somefuture,正如人们所期望的那样)。
理想情况下,我想按顺序进行(即当 n=1 时调用 someFuture,进行一些处理,当 n=2 时调用 someFuture,进行一些处理等)。我考虑过使用一些阻塞方法(来自Await),但这发生在演员内部,所以阻塞不是一个好主意。另一个想法是为这个特定的未来调用创建一个固定的线程池,但听起来有点矫枉过正。我应该怎么做?
更新:我找到了this answer,它建议按照我的想法创建一个固定的线程池。不过,这是正确的做法吗?
【问题讨论】: