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 Threapool: main() continue de tourner même après réalisation des tâches


Sujet :

Concurrence et multi-thread Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de jamesleouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 522
    Par défaut Thread Threapool: main() continue de tourner même après réalisation des tâches
    Bonjour,

    J'utilise des threads dans un programme.
    Ces threads sont lancés via threadPool.invokeLater (import org.apache.commons.threadpool.ThreadPool

    Ils sont appelés depuis une fonction main().

    Tout s'exécute parfaitement, même le dernier log qui est censés s'afficher une fois que le traitement est terminé.

    Cependant, la touche "arrêt" est active même en fin de programme. Et je n'arrive pas a faire terminer le programme sans écrire System.exit

    Je ne comprends pas pourquoi, pourtant il est clair que les tâches ont été exécutées avec succès et entièrement.

    J'ai tout testé: interrupt() à la fin du run. appel a n'importe quel fonction (même les plus stupides), mise à null de TOUT.
    Rien n'y fait.

    J'avais suivi la FAQ qui consistait a lancer une Exception dans une fonction pour faire finir le thread mais ça ne fonctionne pas non plus.
    Le plus curieux, c'est que même en ne mettant rien du tout dans la fonction run(), le programme ne se termine pas...


    Deuxième question: Y a t-il moyen de retourner une valeur au main.
    u du moins d'utiliser une variable commune à la fois aux threads mais aussi au main()?
    Merci beaucoup

  2. #2
    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
    vous devez faire un stop() de votre ThreadPool une fois le travail terminé.


    Accessoirement, cette api de apache common est un projet "dormant" donc plus géré/mis à jour. Regardez plutot du coté de java.util.concurrent.Executors qui fait le même genre de travail.

Discussions similaires

  1. Le script continu à trouner même après avoir fermer le navigateur
    Par sami_c dans le forum Serveurs (Apache, IIS,...)
    Réponses: 1
    Dernier message: 01/07/2008, 14h40
  2. Réponses: 1
    Dernier message: 09/06/2008, 22h19
  3. Réponses: 2
    Dernier message: 08/05/2008, 07h24
  4. Réponses: 5
    Dernier message: 08/01/2007, 14h58
  5. Kill procédure qui continue de tourner en bas. 9i
    Par nuke_y dans le forum Oracle
    Réponses: 10
    Dernier message: 15/11/2004, 10h06

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