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 :

Executors - shutdown


Sujet :

Java

  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Par défaut Executors - shutdown
    Bonjour,
    J'utilise un ExecutorService qui me permet de limiter le nombre de threads traités à la fois. Mais le problème c'est que je voudrai que lorsque je fais appel à la méthode shutdown, il faut que toutes les threads en cours terminent leurs travaux, puis je rends la main à la méthode principale.

    Le comportement actuel : il lance les threads => il exécute shutdown => les threads sont en cours d'exécution et le main aussi. (Je voudrai qu'il termine l'exécution de tous les threads, puis il bascule vers le main)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     ExecutorService threadExecutor = Executors.newScheduledThreadPool( 10);
     
    for(.....)
    {
       threadExecutor.execute( t);
    }
     
    threadExecutor.shutdown();  
    .....
    system.out.println("Bout de code")
    .....
    Merci.

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,



    Il faut utiliser shutdownNow() qui va envoyer un interrupt sur tous les threads en cours.
    A toi de bien gérer cela dans tes tâches...


    a++

  3. #3
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Par défaut
    Non, je veux pas arrêter les threads en cours d'éxecution, mais je voudrai que le main attends que tous les threads lancés par l'exécutor terminent leurs tâches.

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Dans ce cas utilises awaitTermination().

    Il suffit de jeter un coup d'oeil à la javadoc...


    a++

  5. #5
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Par défaut
    Merci pour ta réponse,

    On fait, cette méthode "awaitTermination()" m'a beaucoup aidée et elle m'a résolu le problème.

    Je veux juste savoir pourquoi la méthode "shutdown" n'attend pas la fin de travail des threads associés puis elle rend la main à la méthode principale!!!!

    Merci.

  6. #6
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Ben... c'est comme ca...


    Pourquoi devrait-on impérativement attendre la fin de toutes les pour demander l'arrêt de l'ExecutorService ???


    a++

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

Discussions similaires

  1. Shutdown en mode MSDOS
    Par ixterm dans le forum Ordinateurs
    Réponses: 2
    Dernier message: 08/01/2006, 12h34
  2. Réponses: 3
    Dernier message: 04/11/2005, 14h20
  3. Réponses: 7
    Dernier message: 25/10/2005, 11h35
  4. Shutdown par telnet
    Par jere dans le forum Développement
    Réponses: 2
    Dernier message: 03/06/2004, 11h34
  5. shutdown
    Par jere dans le forum Windows
    Réponses: 4
    Dernier message: 11/05/2004, 14h34

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