Originariamente inviato da mainetz
Quando viene chiamata:

codice:
pool.execute(new JarAnalyzerThread());
non vengono lanciati 5 thead di tipo JarAnalyzerThread dato che è stata impostata la dimensione massima di pool pari a 5 nella dichiarazione?
No, con la singola riga sopra, passi all'Executor solamente 1 Runnable, di cui il thread-pool eseguirà il run() nel contesto di un suo thread. Cioè non viene creato un Thread a partire dal tuo Runnable ma viene eseguito il suo run() nel contesto di un thread del thread-pool.

Tu potresti creare un thread-pool di 5 thread e poi inviargli 10 task. Solo 5 per volta verranno al massimo eseguiti contemporaneamente. Appena un thread ha terminato un task e diventa "idle", ne prende un altro.