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

Concurrence et multi-thread Java Discussion :

Thread et interruptedException


Sujet :

Concurrence et multi-thread Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2007
    Messages
    406
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 406
    Par défaut Thread et interruptedException
    salut à tous,
    j'ai un petit soucis avec le code ci dessous:
    --> classe message
    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
     
    import java.lang.*;
     
    class message extends Thread
    {private String msg;
    private int n;
     
    public message(String msg,int n)
    {this.msg=msg;
    this.n=n;}
     
    public void affiche()
    {for(int i=0;i<n;i++)
    	{System.out.println(msg);}}
     
    }
    --> class testMessage contenant le main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     import java.lang.*;
    class testMessage
    {public static void main (String [] args)
    {message A1=new message("aaaa",50);
    message A2=new message("yyyy",100);
    A1.start();
    A2.start();
    try{A1.join();}
    catch(interruptedException e1){}
    try{A2.join();}
    catch(interruptedException e2){}
    System.out.println("fin");
    }}
    au debut lors de l'execution j'avais pas mis de bloc try catch, je ne l'ai ajouté que quand j'ai eu le message demandant la déclaration de l'exception, j'ai ajouté le bloc try catch, mais ca fontionne tjrs pas... pouvez-vous m'aider? même si je sens que c'est un truc tout bête qui m'échappe
    merci d'avance pour votre aide

  2. #2
    Membre éclairé
    Inscrit en
    Février 2007
    Messages
    406
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 406
    Par défaut
    oops.. c'été le i majuscule d'interrupted...
    mais la je n'ai que l'affichage du "fin"

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 121
    Par défaut
    Si le but est d'appeler la méthode "affiche()" ...
    Alors il faut ajouter dans chaque Thread une methode "run()" :

    run() {
    affiche();
    }

  4. #4
    Membre éclairé
    Inscrit en
    Février 2007
    Messages
    406
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 406
    Par défaut
    merci rebel64,le but ici est de lancer l'affichage des msg en parallele, j'ai essayé de la facon suivante , et ca fonctionne, mais je sais pas si c'est vraiment juste, ou si ca peut etre optimisé...
    -->classe message
    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
     
    import java.lang.*;
     
    class message extends Thread
    {private String msg;
    private int n;
     
    public message(String msg,int n)
    {this.msg=msg;
    this.n=n;}
     
    public void affiche()
    {for(int i=0;i<n;i++)
    	{System.out.println(msg);}}
     
    public void run()
    {this.affiche();}
    }
    -->classe testMessage contenant le main
    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
    import java.lang.*;
    class testMessage
    {public static void main (String [] args)
    {message A1=new message("aaaa",50);
    message A2=new message("yyyy",100);
    A1.start();A2.start();
    try{A1.join();}
    catch(InterruptedException e){}
    try{A2.join();}
    catch(InterruptedException e1){}
    A1.run();
    A2.run();
     
    System.out.println("fin");
    }}
    merci de m'aider

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 282
    Par défaut
    la fonction "start()" appliquée à un Thread fait un appel à "run()", il n'est pas nécessaire de la rappeler ensuite.

    De plus les imports de java.lang ne sont pas nécessaire non plus, c'est automatique.

    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
     
    class testMessage {
      public static void main (String [] args) {
         message A1=new message("aaaa",50);
         message A2=new message("yyyy",100);
         A1.start();
         A2.start();
         try{A1.join();}
         catch(InterruptedException e){e.printStackTrace();}
         try{A2.join();}
         catch(InterruptedException e1){e.printStackTrace();}
     
         System.out.println("fin");
      }
    }

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

Discussions similaires

  1. Tri multi-threadé
    Par Tifauv' dans le forum C
    Réponses: 8
    Dernier message: 28/06/2007, 09h00
  2. récupérer la valeur de sortie d'un thread
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2002, 11h28
  3. Programmer des threads
    Par haypo dans le forum C
    Réponses: 6
    Dernier message: 02/07/2002, 13h53
  4. Réponses: 5
    Dernier message: 12/06/2002, 15h12
  5. [Kylix] Pb de Thread !!
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 25/04/2002, 13h53

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