Was ist die beste Methode, um Objekte aus einer BlockingQueue in einem gleichzeitigen Programm zu erhalten, ohne eine Race Condition zu treffen? Ich mache zur Zeit die folgenden und ich bin nicht überzeugt, dass es die beste Methode ist:Beste Methode, um Objekte aus einer BlockingQueue in einem gleichzeitigen Programm zu erhalten?
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
}
ich noch eine Race-Bedingung zu treffen ... aber, ich bin nicht allzu sicher, ob dies wirklich sicher ist .