Ciao a tutti!
Più o meno ho capito come si usano e si creano i threadpool ho fatto questa cosa:
codice:
package downloader;
import java.util.concurrent.*;
public class ThreadPool {
private final int NUMERO_THREAD = 10;
private ConcurrentLinkedQueue<Runnable> coda = new ConcurrentLinkedQueue<Runnable>();
private final ExecutorService pool = Executors.newFixedThreadPool(NUMERO_THREAD);
public void createpool(){
//questo metodo inserisce in coda 10 thread
for (int i = 0; i<10 ; i++){
DwnThread m = new DwnThread();//esiste una classe chiamata DwnThread che implementa runnable
Thread t = new Thread(m);
t.setDaemon(true);
coda.add(t);
}
new Thread(new Runnable() {
public void run() {
while(!coda.isEmpty()) {
try {
// prendo e rimuovi thread e li eseguo
pool.execute(coda.poll());
} catch (Exception e) {}
}
}
}).start();
}
}
Secondo voi ho fatto giusto o ho fatto una boiata???
Vi faccio questa domanda perchè l'applicazione fa quello che deve fare ma non muore mai. Credo che i thread non muoiano mai.. Come posso ucciderli quando hanno finito il compito che dovevano fare?
Grazie mille!
mainetz