Java 如何执行线程组并在组完成时收到通知

Java 如何执行线程组并在组完成时收到通知,java,multithreading,Java,Multithreading,我有一系列任务在队列中等待处理。这些任务被分配给一组线程。我有3组线程,每组有固定数量的线程,假设A1组有4个线程,A2组有4个线程,A3组有8个线程 现在第一个任务是A1组,第二个任务是A2组……等等。 现在我有4个线程处理任务1,4个处理任务2和8个处理任务3 主要的问题是,是否有一个简单的工具可以用来知道1个组中的所有线程何时完成了任务,以便我可以执行一些执行后代码,然后将另一个任务分配给该组 目前,我通过维护线程组的哈希表来手动完成所有这些工作,在我的每个线程中,我让它们向其父线程发送一

我有一系列任务在队列中等待处理。这些任务被分配给一组线程。我有3组线程,每组有固定数量的线程,假设A1组有4个线程,A2组有4个线程,A3组有8个线程

现在第一个任务是A1组,第二个任务是A2组……等等。 现在我有4个线程处理任务1,4个处理任务2和8个处理任务3

主要的问题是,是否有一个简单的工具可以用来知道1个组中的所有线程何时完成了任务,以便我可以执行一些执行后代码,然后将另一个任务分配给该组

目前,我通过维护线程组的哈希表来手动完成所有这些工作,在我的每个线程中,我让它们向其父线程发送一个“死亡信号”。父线程跟踪组中有多少线程死亡,直到它们全部死亡,一旦全部死亡,我可以继续

因此,需要大量的维护和调试代码,以确保其正常工作是需要时间的。Java中是否有任何库或内置工具可以实现上述功能


谢谢。

请特别注意,这样我就可以让3个ThreadPoolExecutor并行运行了?我以前使用过一个,但一次也没有这么多。是的,您应该能够,只要在队列上调度每个项目时有单独的实例,考虑使用可执行文件/可执行文件而不是线程来调用。如果执行器计数不足以满足您的需要,请考虑使用信号量来跟踪开始/完成任务。谢谢,我想我将使用多个TycRePoExcel服务并使用可调用接口。