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] Interrompre un Thread


Sujet :

Concurrence et multi-thread Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [Thread] Interrompre un Thread
    salut

    voila j'ai mon thread qui tourne et je voudrais l'interrompre pendant une durée indéterminée, j'essaie de la maniere suivante :

    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
     
    public void run()
    {			
    	while(!threadBalade.isInterrupted())
    	{
    		try
    		{		
    			threadBalade.sleep(1000);
    		}
    		catch(InterruptedException e)
    		{
    			System.err.println("Interruption du thread !");
    		}
     
    		if(!threadBalade.isInterrupted())
    		{				
    			deplacerFantome();
    			testCollision();
    		}
    	}
    }
     
    public void pause()
    {
    	threadBalade.interrupt();
    }
    lorsque j'appelle la méthode pause(), le run passe bien dans le catch, mais il continue a boucler...

    Je crois ne pas avoir tout saisie

    Merci d'avance pour votre aide

  2. #2
    Membre habitué Avatar de al85
    Profil pro
    Inscrit en
    Février 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 158
    Points : 128
    Points
    128
    Par défaut
    salut

    essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while(!threadBalade.isAlive())
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while(!threadBalade.isInterrupted())

  3. #3
    Membre averti
    Avatar de JHelp
    Inscrit en
    Octobre 2002
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 185
    Points : 444
    Points
    444
    Par défaut
    Tu veux quoi en fait, qu'il fait une pause dans ton animation ou qu'il arrete ton animation.
    Voici le schema génral d'une animation :
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    public class Animation implements Runnable
    {
        private Thread thread;
        private boolean pause;
        public Animation()
        {
        }
        public void lancer()
         {
              if(this.thread == null)
              {
                   this.thread = new Thread(this);
                   this.thread.start();
               }
        }
        public void pause()
         {
              this.pause = true;
        }
        public void reprendre()
        {
              this.pause = false;
        }
        public void arreter()
        {
            this.pause = true;
            this.thread = null;
        }
        public void run()
        {
             while(this.thread != null)
              {
                   try{Thread.sleep(1000);}catch(Exception e){}
                   if(!this.pause)
                   {
                       this.animer();
                   }
              }
         }
         private void animer()
         {
               //...............
               //...............
               //...............
               //...............
          }
    }
    En fait on continuer à boucler pendant la pause, mais on ne lances pas l'animation.
    il faut penser à lancer la méthode arreter quand on ne se sert plus de l'animation
    Pour avoir une réponse efficace :
    1) Soyez précis dans vos questions
    2) Choisssez bien votre forum
    3) Consultez la FAQ et la doc avant

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    merci pour votre aide. J'ai trouvé en prenant un peu ce principe, sauf qu'au lieu de prendre un booleen "pause", j'ai pris un int "état", donc ca revient au même (enfin non, le booleen est mieux )

    Merci encore

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

Discussions similaires

  1. [Débutant] Interrompre un thread
    Par thomas55 dans le forum C#
    Réponses: 31
    Dernier message: 30/04/2014, 09h20
  2. Interrompre une thread grace au signaux.
    Par code_vx dans le forum C++
    Réponses: 7
    Dernier message: 29/05/2013, 21h49
  3. [thread ] interrompre un thread ?
    Par yann_p dans le forum Concurrence et multi-thread
    Réponses: 18
    Dernier message: 27/04/2006, 14h27
  4. [Thread]Relancer un thread
    Par Pill_S dans le forum Concurrence et multi-thread
    Réponses: 9
    Dernier message: 28/04/2005, 20h41
  5. Réponses: 3
    Dernier message: 11/02/2004, 12h50

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