怎样在多线程的生产者与消费者模式中,当执行到一定状态时终止所有线程

java线程池多线程问题
假设有多个生产者和一个消费者,此时多个生产者在一段不固定的时间以后,可以生产不定长的数组(每次重新运行都不定长,但是长度肯定是有限的)。我想每次运行中,生产者生产时,消费者只要产品队列有产品就可以消费,当生产的产品数组达到极限时,消费者消费完所有的产品,然后整个线程池终止。
例如,一次运行时,所有生产者生产完大概能产生1000条数据,我要让消费者对1000条数据处理完以后终止所有线程;第二次运行,有1200条数据,让消费者生产完1200条以后终止所有。但是,每次1000还是1200,我都无法确定。求各位大神给个思路

用countdownlatch,当生产者和消费者线程都完成了对应的任务后,就可以知道结束了。进行清理

根据楼主的意思,生产者生产的数据是用全局变量接的喽? 控制这个全局变量不是小于0,不就行了? 到0就结束消费者的线程,消费者的就是减少这个全局变量值的操作,要确保多个消费者对全局变量的操作都是可靠的【应该用锁了】。。。。。纯个人看法!