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

Java Discussion :

exécuter un thread


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut exécuter un thread
    Bonjour,

    J'ai un thread et je souhaite qu'il s'exécute toutes les 10 secondes. J'ai donc fait ceci mais il se lance qu'une seule fois:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    		thread.start();
            try
            {
                   Thread.sleep (10000);
            } catch (InterruptedException exception){
     
            }
    MErci de votre aide

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Pour exécuter une tâche à intervalle régulier, on utilise un java.util.Timer, ou éventuellement un ScheduledExecutorService (par Executors.newScheduledThreadPool()) (ou un javax.swing.Timer s'il s'agit d'une tâche d'UI Swing).

    A noter que comme Thread.sleep() s'applique au thread courant, tout ce que tu fais c'est bloquer le thread courant qui lance l'autre thread 10 secondes en faisant ça (ça n'a aucun effet sur le thread lancé par thread.start()).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre éprouvé
    Avatar de tondeurh
    Homme Profil pro
    Responsable interopérabilité Informatique
    Inscrit en
    Juillet 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Responsable interopérabilité Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2005
    Messages : 8
    Billets dans le blog
    22
    Par défaut
    Citation Envoyé par totot Voir le message
    Bonjour,

    J'ai un thread et je souhaite qu'il s'exécute toutes les 10 secondes. J'ai donc fait ceci mais il se lance qu'une seule fois:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    		thread.start();
            try
            {
                   Thread.sleep (10000);
            } catch (InterruptedException exception){
     
            }
    MErci de votre aide
    Bonjour,

    tu éventuellement utiliser ce code simple ci dessous qui répondra a ta demande et simple a comprendre et mettre en place...

    Code java : 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
     
    public class MaThread extends Thread {
     
    /** Un attribut propre à chaque thread */
    private String threadName;
     
    /** Création et démarrage automatique du thread */
    public MaThread(String threadName) {
    this.threadName = threadName;
    this.start();
    }
     
    /** Le but d'un tel thread est d'afficher indéfiniment
    * son attribut threadName toutes les 10secondes . Notons que la méthode
    * sleep peut déclencher des exceptions.
    */
     
    public void run() {
    try {
    while(true) {
    System.out.println("Thread nommé : " + this.threadName + " - itération : " + i);
    Thread.sleep(10000);
    }
    } catch (InterruptedException exc) {exc.printStackTrace();}
    }
     
     
    static public void main(String argv[]) {
    MaThread thr1 = new MaThread("Toto");
    MaThread thr2 = new MaThread("Test2");
    }
    }

    Cdlt;

Discussions similaires

  1. Arrêter une méthode qui s'exécute en Thread
    Par Mister Nono dans le forum Concurrence et multi-thread
    Réponses: 3
    Dernier message: 27/10/2008, 11h43
  2. Délai d'exécution de thread
    Par s0l4r1s dans le forum Concurrence et multi-thread
    Réponses: 3
    Dernier message: 02/12/2007, 12h35
  3. Réponses: 9
    Dernier message: 24/08/2007, 12h37
  4. L'ordre d'exécution des threads
    Par Dosseh dans le forum Modules
    Réponses: 1
    Dernier message: 05/07/2007, 20h24
  5. Réponses: 3
    Dernier message: 16/03/2007, 11h36

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