When consuming values from a Queue in an infinite loop -- what would be more efficient:
Blocking on the Queue until a value is available via take()
while (value = queue.take()) { doSomething(value); }
Sleeping for n milliseconds and checking if an item is available
while (true) { if ((value = queue.poll()) != null) { doSomething(value); } Thread.sleep(1000); }