只使用两个线程的Executors.newFixedThreadPool?

时间:2014-04-11 01:44:33

标签: java multithreading concurrency executorservice

对于特定操作,应用程序创建两个线程(执行不同的任务),主线程不等待它。在某些情况下,它也只能是一个线程。

如果我把这个移到Executors.newFixedThreadPool(),它会有什么不同吗?我知道Executors正在进行线程管理。这对多线程场景很有用。

但我想知道,至少当两个线程被更改为使用执行程序时,它是否会产生任何小的差异?请帮忙。

提前致谢。

1 个答案:

答案 0 :(得分:1)

当你拥有许多线程并且想要时,这可能会带来更好的CPU利用率    一次执行一些,但如果你只有两个线程,那么我认为它是    使用Executors无益。

来自docs.oracle

线程池解决了两个不同的问题:由于减少了每个任务的调用开销,它们通常在执行大量异步任务时提供更高的性能,并且它们提供了一种绑定和管理资源(包括执行时消耗的线程)的方法一系列任务。每个ThreadPoolExecutor还维护一些基本统计信息,例如已完成任务的数量。