【发布时间】:2018-04-24 22:25:39
【问题描述】:
您好,使用 LinkedblockingQueue 编写了一个简单的生产者消费者问题。我的生产者在队列中写入 1 到 10,消费者使用 run 方法中的 while 循环从队列中读取 下面
while(true){
try {
System.out.println("Consumed: "+ sharedQueue.take());
} catch (InterruptedException ex) {
}
根据阻塞队列的定义,如果队列中没有消息,阻塞队列将被阻塞,并等待消息放入队列。因为我使用了一个while循环,我的消费者会被无限期地阻塞吗?
【问题讨论】:
-
您已经回答了自己的问题。它会一直阻塞,直到有消息放入队列。
标签: java multithreading design-patterns java.util.concurrent