Multithread et retour de fonction
salut,
je suis entrain de faire une classe qui me permet de lister les machines sur mon réseau local
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
public class reseauthreadé extends Thread
{
String host;
int timeOut;
String resul;
public reseauthreadé(String a,int b)
{
this.host=a;
this.timeOut=b;
}
@Override
public void run()
{
try {
boolean status = InetAddress.getByName(host).isReachable(timeOut);
if (status == true) {
// System.out.println(host);
this.resul=host;
}
} catch (IOException ex) {
Logger.getLogger(reseauthreadé.class.getName()).log(Level.SEVERE, null, ex);
}
}
public String get_resul(){return this.resul;}
} |
et dans le main j'ai fait une boucle qui crée à chaque fois un thread et récupére la valeur de get_resul()
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| for(int i = 1; i <= 255; i++)
{
reseauthreadé m = new reseauthreadé("192.168.1." + i, 500);
m.start();
reseauthreadé.sleep(100);
if (m.get_resul() != null) {
System.out.println(m.get_resul());
}
} |
le problème est que je doit faire un sleep après la création de chaque thread sinon j'appelle get_resul avant que mon thread termine son execution
comment résoudre ce problème car je gagne rien (en terme de temps) avec ce sleep
merci d'avance