Каков наилучший метод для извлечения объектов из BlockingQueue в параллельной программе без нарушения условия гонки? В настоящее время я делаю следующее, и я не уверен, что это лучший метод:
BlockingQueue<Violation> vQueue;
/*
in the constructor I pass in a BlockingQueue object
full of violations that need to be processed - cut out for brevity
*/
Violation v;
while ( ( v = vQueue.poll(500, TimeUnit.MILLISECONDS) ) != null ) {
// do stuff with the violation
}
Мне еще предстоит попасть в состояние гонки ... но я не слишком уверен, действительно ли это безопасно.