我有一些开发工作要做,我试着看看是否有一个设计模式可以使用。问题很简单:
我有一个启动许多踏板的主线程。主线程必须等待每个线程完成,然后执行其他操作。现有的代码有点难看。我有一个 while 循环来检查线程组以查看是否正在运行:
//launch threads
.....
//wait for threads to finish
while (ThreadRepository.getInstance().isActiveThreadGroup(myGroupId)) {
Thread.sleep(5000);
}
//doing something else
因此,如您所见,while 循环一直运行,直到没有线程运行。
我在考虑模式生产者-消费者,我想做这样的事情:
例如,使用一些 BlockingQueue,每个线程都会在其中放入(或获取)一些东西。而不是有时间和睡眠,我想有一些东西,
myQueue.take()
但有一些东西可以等待队列为空。为空时,表示没有线程在运行。
我尝试在 Internet 上搜索,但没有找到与我的问题相符的内容。
有谁知道最有效地解决我的问题?