下面是一个最简单的多线程处理程序。这种多线程处理并不能提高效率
private ExecutorService threadPool = Executors.newFixedThreadPool(2);
//..
Output process(Input input) {
Future<Output> f =
threadPool.submit(() ->
longTimeConsumingTask(input));
return f.get();
}
这里似乎看到 longTimeConsumingTask
在其他线程里面并行计算,但可惜的是 f.get()
在这里同步等待。
这种方式其实和在本线程里面运行 longTimeConsumingTask
区别不大。