42得票3回答
如何检查ExecutorService上运行的所有任务是否已完成

我有一个ConcurrentLinkedDeque,用于同步推入/弹出元素,并且我有一些异步任务,它们从堆栈中取出一个元素,如果该元素具有邻居,则将其推入堆栈。 示例代码:private ConcurrentLinkedDeque<Item> stack = new Concur...

42得票3回答
在什么情况下,Future.get()会抛出ExecutionException或InterruptedException?

我的代码片段: ExecutorService executor = Executors.newSingleThreadExecutor(); try { Task t = new Task(response,inputToPass,pTypes,unit.getInstance()...

40得票8回答
使用ExecutorService控制任务执行顺序

我有一个将异步任务委派给线程池的过程。我需要确保某些任务按顺序执行。 例如: Tasks arrive in order Tasks a1, b1, c1, d1 , e1, a2, a3, b2, f1 任务可以按任意顺序执行,除非存在自然依赖关系,因此 a1,a2,a3 必须按照...

37得票8回答
如何为可调用的线程命名?

我正在使用ExecutorService线程池来执行一个Callable对象,我想为这个线程命名。 更具体地说,在旧版本中我是这样做的-Thread thread = new Thread(runnable Task); thread.setName("My Thread Name"); 我...

36得票5回答
执行器中的Thread.join()等效方法

我是一名新手,有一个问题需要请教。我有这段代码: public class Main { public static void main(String[] args) throws InterruptedException { // TODO Auto-...

36得票6回答
当所有ExecutorService任务完成后,程序不会立即终止

我将一堆可运行对象放入了一个ExecutorService中:// simplified content of main method ExecutorService threadPool = Executors.newCachedThreadPool(); for(int i = 0; i ...

36得票4回答
如何在Java中为线程池命名线程

我有一个使用Executor框架的Java应用程序,代码如下: protected ScheduledExecutorService scheduledExecutorService = new ScheduledThreadPoolExecutor(5) 我的理解是JVM内部会创建一个包含...

34得票11回答
Java ExecutorService:等待所有递归创建的任务完成的awaitTermination

我使用了一个ExecutorService来执行任务。这个任务可以递归地创建其他任务,这些任务被提交到同一个ExecutorService中,这些子任务也可以这样做。 我现在的问题是,在继续之前,我想等待所有任务完成(即所有任务都完成且它们没有提交新任务)。 我不能在主线程中调用Execu...

32得票4回答
ExecutorService与CompletableFuture的区别

我一直在尝试实现一个异步过程,在这个过程中父方法调用子方法,子方法会依次调用三个不同的方法。 我希望所有这些过程都可以异步完成,即在子方法中进行这三个调用并行执行后,控制权应该返回到父方法并继续其余的执行。 我有这段代码,在测试时运行良好。 public ReturnSomething pa...

32得票1回答
如何停止一个ScheduledExecutorService?

程序在九次打印后结束:class BeeperControl { private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); public void beep...