È un oggetto executor che deve essere riutilizzato dopo un shutdown
? Voglio dire se chiamo shutdown
o shutdownNow
dopo che l'esecutore è terminato, dovrei fare new
per creare un nuovo pool di thread o è possibile in qualche modo "resettare"/riutilizzare l'executor terminato in precedenza e riutilizzarlo?È un esecutore che deve essere riutilizzato?
Aggiornamento:
Se ho bisogno di creare un nuovo pool di thread, come posso "capire" che il precedente è stato fermato?
E.g. la seguente:
public void startPool(){
if(threadPool != null && !threadPool.isShutdown()){
return;
}
threadPool = Executors.newCachedThreadPool();
//other stuff
}
public void stopPool(){
if(threadPool != null){
threadPool.shutdown();
}
}
non funzionerà. Se chiamo stop
e poi start
un nuovo pool di thread non verrà creato a causa delle condizioni. Qual è il modo corretto per codificarlo?
non dovrebbe essere '... &&!threadPool.isShutdown() 'quindi si torna presto solo se il TP è ancora in esecuzione (cioè _started_)? –
@RalfH: buon punto! Aggiornamento OP – Jim
OK, e si chiama 'stop', seguito da' start' dallo stesso thread? –