質問

LinkedBlockingQueueキューのインスタンスを持っているとします。そしてこのキューでそれぞれに使用したい:

for(Object obj : queue)  {

//do smth
}
.

現在の範囲でキューが空の場合はどのように動作するのでしょうか。キューが空になるまで実行中の実行をブロックしますか?

ありがとう!

役に立ちましたか?

解決

ブロックしない、それは単にループブランチに入りません。

簡単に確認できます。

LinkedBlockingQueue<Integer> queue = new LinkedBlockingQueue<>();
for (Object obj : queue) {
    System.out.println("Inside the loop, is empty? " + queue.isEmpty());
}
System.out.println("Not blocking, is empty? " + queue.isEmpty());
.

出力:Not blocking, is empty? true

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top