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