When consuming values from a Queue in an infinite loop -- what would be more efficient:
1) Blocking on the Queue until a value is available via take()
while (value = queue.take()) { doSomething(value); }
2) Sleeping for n milliseconds and checking if an item is available
while (true) {
if ((value = queue.poll()) != null) { doSomething(value); }
Thread.sleep(1000);
}
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…