プロデューサ/コンシューマの問題では、LinkedBlockingQueue
を共有バッファとして使用したいと考えています。BlockingQueueに最大ブロック時間はありますか
プロデューサスレッドは、put()
メソッドを使用してキューに要素を配置し、コンシューマスレッドはtake()
メソッドを使用してキュー上の要素を消費します。
私の質問は、キューが空でコンシューマスレッドがtake()
メソッドを呼び出す場合、プロデューサがキューに要素を置くまでスレッドがブロックされていることです。しかし、最大ブロック時間のようなものがありますか? put()
が呼び出されるまで消費者スレッドがブロックされることは間違いないと思いますか?
私は、永遠にブロックのようなものはないと言っている人がいると聞いています。本当ですか?