Ciao a tutti! Ho creato una classe, nella quale eseguo un ping per sapere se il pc è in rete oppure no. Quello che vorrei fare è creare un pool di thread per far partire in contemporanea n ping e permettere di mappare la mia rete aziendale in maniera rapida. La classe che implementa runnable e che esegue il ping è in breve così composta :

public class info(){
String ip;

public info(ip){

this.ip=ip;
}
...
...

public run(){

process p = Runtime.getRuntime.exec("ping "+ip);
}

}

In un altra classe creo 255 oggetti della classe info, chiaramente correttamente inizializzati coi i 255 indirizzi che voglio mappare ( 10.10.10.[0]-[255]) e ho un metodo che è qui descritto :

public void eseguiThread(){

...
...

pool=Executors.newFixedThreadPool(NumeroMAXThread) ;
for(int i=0;i<255;i++){

pool.execute(info[i]);

}

pool.shutdown();
}

Ora quando lancio questo metodo nel main, a volte mi fa correttamente i 255 ping, altre volte, a sua discrezione, 254 o 253. Sembra quasi che il pool non aspetti la terminazione di tutti i ping e che termini prima. Come posso fare per risolvere?