Il ciclo while (true) { ... }
non funziona correttamente? Qual è l'alternativa?Java: il ciclo `while (true) {...}` in un thread non è valido? Qual è l'alternativa?
Aggiornamento; cosa sto cercando di ...
Ho ~ 10.000 thread, ognuno consuma messaggi dalle loro code private. Ho un thread che produce i messaggi uno a uno e li inserisce nella coda corretta del consumatore. Ciascun ciclo di thread di consumo si riavvia indefinitamente, controllando che un messaggio venga visualizzato nella coda e elaborato.
All'interno Consumer.java:
@Override
public void run() {
while (true) {
Message msg = messageQueue.poll();
if (msg != null) {
... // do something with the message
}
}
}
Il produttore sta mettendo i messaggi all'interno di code di messaggi dei consumatori ad un ritmo rapido (diversi milioni di messaggi al secondo). I consumatori dovrebbero elaborare questi messaggi il più velocemente possibile!
Nota: lo while (true) { ... }
viene terminato da un messaggio KILL inviato dal produttore come ultimo messaggio. Tuttavia, la mia domanda riguarda il modo corretto di fare questo messaggio passando ...
Si prega di vedere the new question, per quanto riguarda questo disegno.
Perché non fornisci maggiori dettagli su ciò che stai cercando di ottenere e ti diremo se c'è un modo migliore per farlo. – Ryan
'@Ryan:' Aggiornato; per favore dai un'occhiata! –
10000 thread sembra una cattiva idea, poiché potrebbe esserci un overhead associato a ciascun thread ... – Colen