【发布时间】:2015-02-11 21:42:05
【问题描述】:
据我了解,Executors 帮助处理 runnables 的执行。例如。当我有几个工作线程完成它们的工作然后终止时,我会选择使用执行器。 执行器将处理执行工作线程所需的线程的创建和终止。
但是现在我面临另一种情况。固定数量的类/对象应封装它们自己的线程。因此,线程在创建这些对象时启动,并且线程将在这些对象的整个生命周期内继续运行。 反过来,少数对象是在程序开始时创建的,并且在整个运行时都存在。 我想在这种情况下线程比执行程序更可取,但是当我阅读互联网时,每个人似乎都建议在任何可能的情况下使用执行程序而不是线程。
有人可以告诉我是否要在这里选择 Executors 或 Threads,为什么?
谢谢
【问题讨论】:
-
这些线程在其生命周期中会做什么?他们会 100% 忙于计算 pi 的小数点,还是会闲置直到与之交互?
-
视情况而定......其中一些将有大约 50% 的空闲时间,其他只有大约 10%
-
...还有一些人会 100% 忙于计算树的哈希值。
标签: java concurrency executorservice