26得票2回答
当 ExecutorService 超出范围时,它会被垃圾回收吗?

我问这个问题是因为我正在创建许多执行者服务,虽然我可能已经有一个需要调查的内存泄漏,但我认为最近对以下代码的更改实际上使情况变得更糟,因此我正在尝试确认发生了什么:@FunctionalInterface public interface BaseConsumer extends Consum...

25得票1回答
在没有断点的调试和正常运行中,Java代码执行结果不同。ExecutorService出了问题吗?

TL:DR ExecutorService executorService = Executors.newFixedThreadPool(8); 在调试时并发运行,但在正常运行时开始并发运行,但后来以单线程方式运行。 我有一些代码,在 ExecutorService 中启动4个不同的任务。其...

25得票3回答
如何使用invokeAll()让所有线程池执行其任务?

ExecutorService pool=Executors.newFixedThreadPool(7); List<Future<Hotel>> future=new ArrayList<Future<Hotel>>()...

24得票11回答
ExecutorService的惊人性能拐点——经验法则是什么?

我正在尝试弄清如何正确使用Java的Executors。我意识到向ExecutorService提交任务会有一定的开销。但是,我惊讶地发现它的开销是如此之高。 我的程序需要处理大量的数据(股市数据),并且需要尽可能低的延迟。大部分计算都是相当简单的算术运算。 我尝试测试了一个非常简单的东西...

23得票5回答
如何在FutureTask中捕获异常

在Java 1.6(以及从Eclipse)中,发现在Executors.newCachedThreadPool()中运行的FutureTask在Runnable.run()方法中吞噬异常后,我试图想出一种方法来捕获这些异常,而不必为所有我的Runnable实现添加throw/catch。 A...

23得票2回答
如何在Web应用程序中优雅地关闭ExecutorService?

在我的Web应用程序中,我创建了一个使用具有固定大小线程池的ExecutorService的服务。我在整个应用程序生命周期内重复使用同一个ExecutorService。private static ExecutorService pool = Executors.newFixedThread...

22得票2回答
ExecutorService awaitTermination被卡住了

我使用Executors.newFixedThreadPool(2)创建了一个固定大小的线程池,并执行了10个Runnable对象。我设置了断点并跟踪执行过程。但是,即使所有任务都已完成,fixedSizeThreadPool.awaitTermination()也不允许我继续执行。 简而言...

22得票5回答
在ScheduledExecutorService中运行的周期性任务如何在任务内部停止该任务?

在使用ScheduledExecutorService运行任务时,有没有一种好的方法可以从任务本身中停止任务的重复执行? 假设我有以下任务:Future<?> f = scheduledExecutor.scheduleAtFixedRate(new Runnable() { ...

22得票2回答
ExecutorService.invokeAll 不支持运行任务集合

想要通过 ExecutorService 的 invokeAll(..) 方法运行一组 Runnable 任务。但目前不支持这样做(仅支持 Callable 任务的集合)。 为什么会这样?有什么类似的替代方案。

22得票3回答
执行器是否可以重复使用?

在调用shutdown或shutdownNow终止执行器之后,执行器对象是否可以被重复使用?我是说,如果执行器已经终止,我是否需要使用new创建一个新的线程池,还是可以以某种方式“重置”/重复使用先前终止的执行器并重复利用它? 更新: 如果我需要创建新的线程池,如何“了解”之前的线程池已被停...