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

Langage Java Discussion :

arréter un programme java après n secondes d'execution


Sujet :

Langage Java

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2008
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 168
    Points : 103
    Points
    103
    Par défaut arréter un programme java après n secondes d'execution
    bonjour.

    j'ai une boucle qui effectue des traitements pendant un très long. je voudrais arréter le traitement et sortir de la boucle après x secondes. comment faire simplement la chose ?

    merci d'avance.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 47
    Points : 56
    Points
    56
    Par défaut
    avec des Threads / Runnable

    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
     
    class Test {
         //boolean qui indique si on doit continuer ou arreter le traitement
         private boolean continuer = true;
         public void traitement() {
              Runnable r = new Runnable() {
                   public void run() {
                        try {
                             Thread.sleep(TempsAAttendre);
                             //a la prochaine itération de la boucle, la condition ne sera pas virifie, le programme sortira donc de la boucle
                             continuer = false;
                        }catch(RuntimeException e) {
                             e.printStackTrace();
                        }
                   }
              };
     
              //lance le runnable qui va attendre le temps max
              new Thread(r).start();
     
              while(continuer && taCondition) {
                   //traitement long
              }
         }
    }
    ps : j'ai ecrit tout ca "en live", il se peut qu'il y ait quelques erreurs de syntaxes...

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2008
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 168
    Points : 103
    Points
    103
    Par défaut
    merci de ta réponse.

    que doit valoir "taCondition" ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 47
    Points : 56
    Points
    56
    Par défaut
    taCondition doit contenir la condition d'arret de ta boucle que tu avais avant d'implementer ma solution..

    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    while(continuer && i<100000) {
         //traitement...
    }

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/11/2013, 20h28
  2. apel a un programme apres quelque seconde
    Par mery007 dans le forum DB2
    Réponses: 13
    Dernier message: 30/04/2012, 12h32
  3. Runtime.getRuntime().exec exécute le processus après la fin du programme Java
    Par scalande dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 14/02/2012, 17h56
  4. Quitter le programme aprés n secondes ?
    Par isoman dans le forum GTK+
    Réponses: 6
    Dernier message: 09/02/2008, 22h35
  5. Réponses: 2
    Dernier message: 12/06/2007, 11h37

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