Java 在其他几个任务完成后运行该任务

Java 在其他几个任务完成后运行该任务,java,concurrency,java-8,Java,Concurrency,Java 8,有没有一种传统的方法可以在其他几个任务完成后运行一个任务,而不保留单独的线程等待它们?我会使用并行流,在继续之前执行这些任务(因此不需要等待) 定义优先级阻塞队列,并让所有任务实现可比较的接口。将您要运行的所有任务添加到优先级队列,这将确保具有较高优先级的任务位于首位……继续轮询队列……现在,如果尚未将较高优先级的任务添加到队列中,但您仍希望您的任务在该较高优先级的任务之后运行……请让您的任务实现与的接口一个布尔方法,如果任务应该运行,它将返回true……将您的运行条件放在那里……。当轮询时,如

有没有一种传统的方法可以在其他几个任务完成后运行一个任务,而不保留单独的线程等待它们?

我会使用并行流,在继续之前执行这些任务(因此不需要等待)


定义优先级阻塞队列,并让所有任务实现可比较的接口。将您要运行的所有任务添加到优先级队列,这将确保具有较高优先级的任务位于首位……继续轮询队列……现在,如果尚未将较高优先级的任务添加到队列中,但您仍希望您的任务在该较高优先级的任务之后运行……请让您的任务实现与的接口一个布尔方法,如果任务应该运行,它将返回true……将您的运行条件放在那里……。当轮询时,如果运行条件为false,则将任务添加回优先级队列并保持轮询

您可以使用回调机制,例如属性更改侦听器,然后在所有任务都签入后调用最后一个任务。我假设当您说“在完成多个其他任务后运行任务”时,您希望遵循执行顺序。或者,如果需要对执行进行更多控制…
tasks.parallelStream().forEach(Runnable::run);
doSomething();