IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Multithread et retour de fonction


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Il faut que les threads utilisent un objet moniteur à qui ils donneront leurs résultats. C'est cet objet moniteur qui va se charger de traiter les données.

    Il faudra faire attention dans cet objet moniteur que les méthodes pourront être appelées parralélèment.

    Effectivement, le fait d'utiliser sleep est complètement à côté de l'idée de la programmation concurente.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Par défaut
    merci c'était une bonne idée de faire un objet statique moniteur partager par tout les threads

    mnt en 2 seconde mon programme se termine c'est génial

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Perte de type en retour de fonction
    Par Bebel dans le forum Langage
    Réponses: 8
    Dernier message: 22/12/2005, 12h54
  2. [syntaxe] tableau et retour de fonction
    Par BainE dans le forum C++
    Réponses: 4
    Dernier message: 08/12/2005, 16h01
  3. Retour de fonction en C
    Par troumad dans le forum Linux
    Réponses: 2
    Dernier message: 06/11/2005, 21h43
  4. Utilisation d'un retour de fonction dans un decode
    Par CFVince dans le forum Oracle
    Réponses: 4
    Dernier message: 20/10/2005, 17h22
  5. Référence en retour de fonction, à transformer en hash
    Par raoulchatigre dans le forum Langage
    Réponses: 4
    Dernier message: 15/07/2005, 14h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo