Ho una situazione in cui più thread eseguiranno il polling di un singolo BlockingQueue chiamando take(). Quello che voglio sapere è il seguente:BlockingQueues e ordine di accesso al thread
Se più thread attendono che la coda riceva un articolo, verrà data priorità alla rimozione degli articoli dalla coda nell'ordine in cui hanno effettuato le loro chiamate() o l'ordine in cui i thread rimuovono le cose dalla coda sarà arbitrario?
Grazie!
Nota: ho già scritto le mie implementazioni per questo genere di cose in passato, ma mi chiedo se le implementazioni di BlockingQueue in Java possano farlo per me.
In generale, qualsiasi applicazione con multithreading non dovrebbe formulare alcuna ipotesi sull'ordine di esecuzione del thread. Ci sono modi per applicarlo, ma l'idea dietro le applicazioni MT è che non dovrebbe essere fatto. – Dariusz
Interessante domanda, ho scritto ed eseguito un programma - non esiste un ordine fisso. – Tala
[domanda correlata] (http://stackoverflow.com/questions/1301691/java-queue-implementations-which-one) che parla anche di equità. –