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 :

Interruption d'un Thread pendant sleep


Sujet :

Concurrence et multi-thread Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 27
    Par défaut Interruption d'un Thread pendant sleep
    Salut,
    J'ai une application qui produit un bip sonore chaque 15 seconde avec un compteur qui s incrémente pour calculé le nombre de bip. je veux initialisé avec un Click sur bouton le compteur et arrêter le son du bip mais la dernière exécution ne s interrompe pas . j ai essayer thread.interrupt() mais ça ne s arrête pas.
    Merci pour votre aide.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Trop vague.

    Qu'est-ce qui démarre les bips et les attentes entre les bips, à quoi ressemble le thread qui fait ça, et qu'est-ce qui est censé l'interrompre, pourquoi et quand ?

    Le tout clairement, en exposant calmement la situation, en prenant la peine de se relire.

    Pour arrêter un sleep(), il faut effectivement appeler interrupt() sur le thread qui dort. Si tu as l'impression que ça ne marche pas, soit tu te trompes et on va devoir chercher pourquoi, soit tu t'y prends mal pour appeler interrupt() sur le thread qui dort. Ça peut être que tu ne l'appelles pas sur le bon thread, ou bien que tu ne l'appelles pas du tout ou pas dans le bon thread, par exemple.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Inscrit en
    Août 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 27
    Par défaut
    désolé pour la manière avec la quelle j'ai écrit le message. J ai fait une class qui implémente Actionlistener. Evidament il y a les méthode run et stop. Voila le code qui explique se que je veux faire.
    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 void start ()
    	{
     
    		on = true;
     
    		if (runner==null)
    		{
    			runner = new Thread(this);
    		    runner.start();
     
    		}
     
     
    	}
            public void stop ()
    	{
    		on = false;
                    thread.interrup();
    		runner = null;
     
    	}
            public void run()
    	{
     
        	while(on)
        	{
        		try
        		{
        			bip();//fonction qui déclenche un son 
        			Thread.sleep(15000);
        		}
        		catch(InterruptedException e)
        		{
     
        		}
        	}
    	}
    Quand je clique sur le bouton j appelle la méthode stop. mais la dernière exécution qui s est déclenche juste avant que je clique s exécute (le thread reste en veuille et s exécute malgré que j ai fait thread .interrupt) je veux tué se thread instantanément des que je clique sur le bouton .
    il y a t il un moyen d' interrompre un thread pendant son sommeil et q il ne s exécute pas quand il se reveil.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Et il s'arrête bien au bout de 15 secondes? Comment es-tu sur que le thread ne s'interrompt pas? Il n'y a aucun code dans le catch!

  5. #5
    Membre averti
    Inscrit en
    Août 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 27
    Par défaut
    le son du bip se déclenche malgré que j'ai clické sur stop . il y a un compteur qui s incrémente aussi.
    Merci pour votre aide.

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    1) mettez un message dans le catch pour confirmer le passage.
    2) le champ "on" est bien déclaré volatile?

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

Discussions similaires

  1. [Thread] Stopper un thread pendant que les autres tournent
    Par NutellaPiou dans le forum Concurrence et multi-thread
    Réponses: 13
    Dernier message: 30/01/2009, 11h45
  2. [VB2005] Thread and Sleep
    Par Kropernic dans le forum Windows Forms
    Réponses: 6
    Dernier message: 25/06/2008, 16h34
  3. Interruption d'un Thread
    Par doudblast dans le forum Concurrence et multi-thread
    Réponses: 3
    Dernier message: 11/03/2006, 17h30
  4. threads et sleep
    Par buzzz dans le forum Windows
    Réponses: 2
    Dernier message: 19/02/2005, 01h54
  5. [Thread] besoin sleep(delay)... car java mobilise CPU
    Par thierry198 dans le forum Concurrence et multi-thread
    Réponses: 5
    Dernier message: 27/09/2004, 17h46

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