我目前正在考虑使用 Akka(Java API/库)来完成创建多个Future
s 并将它们放入BlockingQueue
. 现在可能是由 Callables 处理的某些任务在调用线程中运行得更快/更快,而不是创建新线程或等待新线程可用。我认为 Akka 正是这样做的,例如,如果我正在运行:
Future<String> f1 = future(new Callable<String>() {
public String call() {
return "Hello" + "World";
}
});
它可能在调用 future(Callable) 的当前线程中执行,还是我错了?也许我错了,因为我不明白调度程序将如何决定是否创建新线程。
现在我只是使用一个使用其他线程的 ExecutorService,但是由于某些任务真的非常快,它们也可以由当前线程处理。但我正在使用 aBlockingQueue<Future<Float>>
这就是为什么我有时不能使用Future
s 有时不能。
最好的问候,
约翰内斯