你应该总是使用执行器服务而不是启动你自己的线程吗?
2022-09-03 13:07:24
使用 JDK >= 1.5,启动线程的首选方式应该始终是执行器还是执行器服务,或者如果您不需要 ExecutorService 提供的内容,是否仍然有理由更喜欢使用 Thread.start?
对于同步,我曾经认为使用新的锁定实现是首选,直到我得到了其他解释。所以我对遗嘱执行者有同样的想法。它们只是处理更复杂案件的一种方式,还是应该成为标准选择?
使用 JDK >= 1.5,启动线程的首选方式应该始终是执行器还是执行器服务,或者如果您不需要 ExecutorService 提供的内容,是否仍然有理由更喜欢使用 Thread.start?
对于同步,我曾经认为使用新的锁定实现是首选,直到我得到了其他解释。所以我对遗嘱执行者有同样的想法。它们只是处理更复杂案件的一种方式,还是应该成为标准选择?
Java 并发实践至少在 6.2 节中明确指出:
Java 类库中任务执行的主要抽象不是 ,而是 。[...]
Thread
Executor
使用执行器通常是在应用程序中实现生产者-使用者设计的最简单途径。
就个人而言,自Java 5以来,我完全放弃了和,因为它们提供的自定义和功能比.Thread
ThreadGroup
ExecutorService
使用时,我知道我可以使用,我知道我可以(用一点开销)安排重复的任务。因此,我认为对象的直接实例化是弃用的代码,就像现在一样。ExecutorService
Callable
Thread
Vector
Hashtable