多线程消费队列到指定个数时触发一个生产线程往队列中补充元素,保证队列中有足够的数据供消费,不至于使消费线程等待,也不至于在队列中堆得过多。假设10人消费,先放2个篮子,每个篮子10个(篮子得够大,怎么也得够在场的人分一次),吃完一篮子赶紧叫人再提一篮子来,谁负责叫人?吃篮子里最后一个的,或吃另外一篮第一个的,这样得知道哪个是最后一个,哪个是第一个。另外一个方法在篮子底部放个托盘,谁拿到托盘谁负责叫人,全部消费完时,篮子里不放托盘了,按人数在篮子里放甜点,每人一份,吃完收工。
final long startTime = System.currentTimeMillis();//开始时间int index = 0;//模拟处理索引final int person = 10;//模拟消费者个数 final LinkedBlockingQueue
ps: