Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme avec les threads Java

    1 avril 2009 à 7:01:15

    slt,
    j'ai un probleme avec les Thrreads Java :
    J'utilise les thread avec le langage C sous unix sans probleme, c'est simple il suffit de creer un thread et de lui associé une fonction a executer ! Mais avec Java je vois pas comment creer plusieurs threads dans une meme Classe executant chacun une methode differente de cette meme classe

    Bon j'ai essaié un petit exemple le voila :

    public class  testth implements Runnable{
    
        public String mes = null;
    
        public void threadCreate(String mes){
            this.mes = mes;
            Thread th = new Thread(this);
            th.run();
        }
    
        public void run(){
            for(int i=0;i<100000;i++){
                System.out.println(mes);
            }
    
        }
    
        public static void main(String[] args) {        
            
            new testth().threadCreate("th1");
            new testth().threadCreate("th2");
    
        }
    
    }
    


    le probleme c'est qu'il s'execute sequenciellement non pas parallement !
    meci d'avance de m'aider :)
    • Partager sur Facebook
    • Partager sur Twitter
      1 avril 2009 à 8:22:42

      Salut,

      C'est parce qu'il faut faire appel à la méthode
      th.start();
      

      et non pas à la méthode
      th.run();
      


      ;)

      • Partager sur Facebook
      • Partager sur Twitter

      "'But I don't want to go among mad people,' said Alice. 'Oh, you can't help that,' said the cat. 'We're all mad here.'" Lewis Carroll

        1 avril 2009 à 9:06:04

        en effet c'est mieux d'appeler start() que run directement mais start() appellera le run après.
        Bref le problème c'est que ta classe doit étendre la classe Thread

        public class testth extends Thread implements Runnable

        voili voulou
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          1 avril 2009 à 9:51:20

          Citation : Mric_

          en effet c'est mieux d'appeler start() que run directement mais start() appellera le run après.
          Bref le problème c'est que ta classe doit étendre la classe Thread

          public class testth extends Thread implements Runnable

          voili voulou



          Il n'est pas obligatoire d'étendre Thread, on peut également simplement implements Runnable.
          Si tu choisis d'étendre Thread pas besoin d'ajouter Runnable vu que Thread le fait déjà.
          • Partager sur Facebook
          • Partager sur Twitter
            1 avril 2009 à 10:09:51

            public class testth extends Thread
            


            Le soucis avec cette méthode c'est que si l'on hérite de Thread on ne plus plus hériter d'une autre classe, on considère comme plus "propre" d'implémenter Runnable et de construire Thread en lui passant une instance de Runnable .... Même si la plus part de programmeurs (comme moi :-° ) utilisent ta méthode dans la plus part des cas ;)
            • Partager sur Facebook
            • Partager sur Twitter

            "'But I don't want to go among mad people,' said Alice. 'Oh, you can't help that,' said the cat. 'We're all mad here.'" Lewis Carroll

              1 avril 2009 à 10:24:16

              Pour un début (comme il dit), je pense que c'est plus simple de passer par la classe Thread puis rien n'empêche de faire un héritage multiple par la suite.
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                1 avril 2009 à 11:36:16

                Citation : Mric_

                Pour un début (comme il dit), je pense que c'est plus simple de passer par la classe Thread puis rien n'empêche de faire un héritage multiple par la suite.



                C'est pas vraiment plus compliqué de faire new Thread(new RunnableImpl()).start() que new ThreadChild().start()

                Y a pas d'héritage multiple en java.
                • Partager sur Facebook
                • Partager sur Twitter
                  1 avril 2009 à 20:07:16

                  Merci a vous tous !! ca marche tres bien avec ".start()"
                  :)
                  Bonne Programmation !!
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Probleme avec les threads Java

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown