【发布时间】:2014-12-02 10:51:11
【问题描述】:
我有一个生产者线程,它将继续将值插入到linkedBlockingQueue 中,并且有多个消费者线程将同时从这个linkedBlockingQueue 中获取()。我让他们继续思考的条件是,当我的生产者标志完成时为假,当它为真时,他们将停止尝试。但是我遇到了我的第二个线程在 take() 块进程中的问题。我相信这是因为在我的制作人在结束时将标志设置为 true 之前,其中一个胎面已经在执行 take() 阻塞方法的 run() 主体内。由于不会有任何新元素添加到linkedBlockingQueue,它将处于永远阻塞的进程中。我该如何解决这个问题?
【问题讨论】:
标签: java multithreading blockingqueue