Java Concurrent:
同步队列可以实现一个生产者仅供给一个消费者;
若有两个消费者,只能先关闭一个消费者,再启动另外一个消费者,且两个消费者不能消费同一个数据。如果一个生产者供给多个消费者,且所有消费者都能消费同一个数据,该如何设计?
如果使用阻塞队列BlockingQueue呢?

解决方案 »

  1.   

    消费同一个数据?我不明白你的意思,我的理解是:一个生产者可以让多个消费者消费,但是多个消费者在消费的过程中,肯定是这个消费者消费完了,如果还有剩余的并且cpu分给其的时间片用完了,则该消费者阻塞,就让下一个消费者消费。
    如果想看一下代码的话,你回复一下,我贴出来。
      

  2.   

    http://wangjianwei866.blog.163.com/blog/static/9295823201162294542880/
      

  3.   

     可以用阻塞队列blockingQueue,用take和put方法,当队列为空的时候阻塞等待生产者继续生产
      

  4.   

    http://topic.csdn.net/u/20120528/00/6f95d429-0851-46ac-839e-2040dc058186.html?seed=739470646&r=78697192#r_78697192
    帮忙看一下,谢谢了