2011-08-23 14 views
6

È sicuro utilizzare il singleton ExecutorService e più istanze di CompletionService utilizzando lo stesso pool di thread?È sicuro utilizzare singleton ExecutorService

CompletionService<Object> collector = new ExecutorCompletionService<Object>(threadPool); 

Quindi, non ci sarà più thread che creano casi come sopra, 'collettore' con un Singleton ThreadPool.

+0

Non vedo alcun problema. Avevi in ​​mente qualche problema particolare che potrebbe causare problemi? – toto2

+0

Il mio coraggio mi dice che non ci saranno problemi. Ma volevo confermare prima di usarlo come non ho potuto trovare e la documentazione specifica su questo. – ankitjaininfo

risposta

5

Andrà tutto bene. Ogni istanza di ExecutorCompletionService mantiene la propria coda di attività completate e utilizza solo il sottostante Executor per elaborare ogni attività.

Le attività possono interferire reciprocamente in termini di prestazioni se il numero di servizi di completamento è elevato e il pool di thread ha un limite superiore, ma ciò non influirà sulla correttezza del risultato.

Problemi correlati