459得票27回答
使用ExecutorService如何等待所有线程完成?

我需要每次执行4个任务,就像这样:ExecutorService taskExecutor = Executors.newFixedThreadPool(4); while(...) { taskExecutor.execute(new MyTask()); } //...wait f...

307得票6回答
Java定时器与ExecutorService有什么区别?

我有一段代码,使用java.util.Timer来安排任务。我看到ExecutorService也可以完成相同的任务。所以我的问题是,你是否使用过Timer和ExecutorService来安排任务,其中一个的好处是什么? 另外,我想知道是否有人使用Timer类并遇到了ExecutorSer...

293得票20回答
ExecutorService的线程和线程池如何命名?

假设我有一个应用程序,它像这样利用了Executor框架Executors.newSingleThreadExecutor().submit(new Runnable(){ @Override public void run(){ // do stuff ...

247得票13回答
处理Java ExecutorService任务的异常

我正在尝试使用Java的ThreadPoolExecutor类来运行大量重量级任务,使用固定数量的线程。每个任务都有许多可能由于异常而失败的地方。 我已经创建了ThreadPoolExecutor的子类,并覆盖了afterExecute方法,该方法应提供在运行任务时遇到的任何未捕获异常。然而...

243得票16回答
ExecutorService,如何等待所有任务完成

等待 ExecutorService 的所有任务完成的最简单方法是什么?我的任务主要是计算型的,所以我只想在每个核心上运行大量的作业。目前我的设置如下:ExecutorService es = Executors.newFixedThreadPool(2); for (DataTable si...

213得票7回答
选择 ExecutorService 的 submit 和 ExecutorService 的 execute 之间的区别。

如果返回值不是我的关注点,我应该如何选择 ExecutorService 的 submit 或 execute?如果我测试两个方法,除了返回值以外,我并没有看到任何区别。ExecutorService threadExecutor = Executors.newSingleThreadExec...

197得票8回答
Executors.newCachedThreadPool()与Executors.newFixedThreadPool()的区别

newCachedThreadPool() 和 newFixedThreadPool(),何时使用哪一个呢?从资源利用角度来看,哪种策略更好呢?

151得票6回答
如何从线程池中获取线程ID?

我有一个固定大小的线程池来提交任务(限制为5个线程)。如何找出这5个线程中哪一个执行了我的任务(类似于"第3个线程中的5个正在执行此任务")?ExecutorService taskExecutor = Executors.newFixedThreadPool(5); //in infini...

144得票14回答
有没有可能创建一个具有大小限制的缓存线程池?

看起来似乎不可能创建一个带有线程数量限制的缓存线程池。 以下是标准Java库中静态Executors.newCachedThreadPool的实现方式: public static ExecutorService newCachedThreadPool() { return new T...

118得票11回答
在超时后中断任务的ExecutorService

我正在寻找一种可以设置超时时间的ExecutorService实现。如果提交给ExecutorService的任务运行时间超过超时时间,它们将被中断。实现这样一个东西并不是很难,但我想知道是否有现成的实现。以下是基于下面的讨论提出的方案,请评论。 import java.util.List;...