对于特定操作,应用程序创建两个线程(执行不同的任务),主线程不等待它。在某些情况下,它也只能是一个线程。
如果我把这个移到Executors.newFixedThreadPool(),它会有什么不同吗?我知道Executors正在进行线程管理。这对多线程场景很有用。
但我想知道,至少当两个线程被更改为使用执行程序时,它是否会产生任何小的差异?请帮忙。
提前致谢。
答案 0 :(得分:1)
当你拥有许多线程并且想要时,这可能会带来更好的CPU利用率 一次执行一些,但如果你只有两个线程,那么我认为它是 使用Executors无益。
线程池解决了两个不同的问题:由于减少了每个任务的调用开销,它们通常在执行大量异步任务时提供更高的性能,并且它们提供了一种绑定和管理资源(包括执行时消耗的线程)的方法一系列任务。每个ThreadPoolExecutor还维护一些基本统计信息,例如已完成任务的数量。