java - 两个短命线程 vs. Executor

标签 java multithreading executorservice java-threads

在应用程序启动时,我只有两个短期任务要在后台运行。为每个任务使用一个线程或一个执行器是否有意义,例如,一个单线程执行器来提交这两个任务。

创建两个快速死亡的线程是否有意义,而不是让一个线程执行程序在应用程序的整个生命周期中等待任务,而没有任务?

最佳答案

使用线程池的一大好处是,您可以避免重复执行某些任务的情况,如果该任务出现问题导致线程挂起,您就有丢失线程的风险每次任务发生时,都会导致应用程序在线程外运行。如果您的线程仅在启动时运行一次,那么风险似乎不适用于您的情况。

您仍然可以使用 Executor,但是一旦您的任务都运行完就将其关闭。在原始线程上使用 Futures 或 CompletionService 可能更可取。

关于java - 两个短命线程 vs. Executor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35325923/

相关文章:

c++ - 在多线程中安全使用 fstream 有哪些选项

java - 将 FX 嵌入到 swing 中时出现问题

ios - 我可以将任务分配给 iOS 中的特定核心吗?

java - 如何对不同的 ExecutorService 对象重用线程?

java - 如何释放已关闭以进行垃圾收集的执行程序服务的内存?

java - 同步方法中的线程锁定

java - 在 Struts2 select 标签中显示不同的值名称

java 男女通用浴室

Java 的 System.out.println();它会阻止程序吗 tty 会有延迟

java - 以线程安全的方式使用 ExecutorService 和 ProgressMonitor