2011-11-08 11 views
5

Così ho più fasi fase 1 -> fase 2 -> fase 3 -> fase4 quindi in alcuni casi il produttore sarebbe un consumatore, e in ogni fase lì sono più produttori/consumatori di utilizzare più cpu. Nel caso in cui alcuni pacchetti perderebbero passaggi, cioè passare direttamente dalla fase 1 alla fase 4.Il modo migliore per implementare un modello di produttore/consumatore multiplo in Java 6

Quindi stavo per avere una classe per ogni fase, condividendo un BlockingQueue con la fase precedente, ma ho anche letto che la ExecutorService funziona come un modello Producer/Consumer tutto in uno, quindi sto cercando di andare con la migliore astrazione.

Tuttavia, a mio parere, utilizzando un Executor, il bit del produttore viene eseguito prima che vengano inviati all'esecutore, in un modo sequenziale che non è quello che voglio.

Qualcuno potrebbe chiarire per favore?

+0

Penso che sia meglio lasciare questo concatenamento, programmazione e sequenziamento ad alcuni strumenti SOA come il mix di servizi Apache piuttosto che implementare la nostra custom. Ma i punti finali possono essere invocati per essere più consumatori. Penso che l'implementazione manuale di questo abbia troppe variabili e problemi di controllo. Solo un pensiero. – r0ast3d

risposta

1

Suoni come se fosse necessario un java.util.concurrent.CompletionService per ogni fase, anziché BlockingQueue.

+0

Sì, sono venuto a questa mia conclusione –

Problemi correlati