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 :

Retour de threads


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 ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Par défaut Retour de threads
    Hello,

    Je voudrais utiliser des threads pour executer une fonction, mais comment faire pour récupérer le résultat de cette fonction? Avec un accesseur? Mais dans ce cas comment savoir quand le thread est terminé? Un example?

    Merci, A+

  2. #2
    Membre confirmé
    Avatar de jolatouf
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 170
    Par défaut
    Bonjour,

    j'ai trouvé çà sur le forum code retour thread

    a+

  3. #3
    Membre éclairé Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Par défaut
    Ok, merci! Existe il un truc du genre mais pas pour les classes anonymes?

    Merci, A+

  4. #4
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Tu peux effectivement t'en sortir avec une classe personnelle maintenant la valeur du résultat. Cette classe devra évidemment implémenter Runnable ou étendre la classe Thread...

    Tu crées sur ta classe un accesseur pour récupérer le résultat.

    Dans la classe qui doit récupérer ce résultat, tu peux savoir si le calcul est fini ou non grâce à la méthode isAlive() de la classe Thread. Ainsi, dès que celle-ci renvoie 'false', tu sais que le calcul est fini et que tu peux récupérer/utiliser le résultat.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  5. #5
    Membre expérimenté
    Inscrit en
    Mai 2007
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 335
    Par défaut Programmation multithreadée ou parallèle.
    Il faut appliquer les règles de programmation multiThreadée ou parallèle: est-ce que tu veux synchroniser tes Thread? ou les données, et afficher le résultat par "polling": checker régulièrement si le traitement est terminé.

    Dans le 1er cas, utiliser un "join" pour attendre la fin de l'exécution du Thread, ou des verrous posés avec wait/notify (il doit y avoir des tutoriaux plus explicites que moi sur ce vaste sujet)

    dans le 2ème: tu peux simplement synchroniser les méthodes de getters, et ajouter un flag "terminé" que tu place manuellement à la fin du Thread.

  6. #6
    Membre éclairé Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Par défaut
    Ok, ca devient plus clair... Mais imaginons le cas suivant:

    Je recoit une string contenant toutes les ips. Je créée les threads et attend qu'ils soient terminés. Mais comment je fais pour y accéder? Je dois déclarer chaque thread dans une variable pour y accéder par la suite?

    Dionc le mieux serait de faire une liste de threads pour y a ccéder par la suite quelque soit le nombre qu'il y en ait?

    Merci, A+

  7. #7
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Ou alors tu utilises Future<T>. Avec un get(), tu récupères le résultat, et la méthode est bloquante jusqu'à ce que la tâche soit terminée...
    C'est pris en compte par un ExecutorService... (pool de thread)

Discussions similaires

  1. Pilotage de WORD 2003, conditions de retour et exécution inter threads
    Par jmmbb dans le forum Développement Windows
    Réponses: 0
    Dernier message: 18/10/2010, 14h21
  2. Réponses: 3
    Dernier message: 10/05/2010, 20h19
  3. thread et retour d'une valeur après execution du thread
    Par lufermapar dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 09/12/2008, 21h01
  4. threads, moissonnage avec retour de tableaux
    Par mnem0 dans le forum Langage
    Réponses: 5
    Dernier message: 30/03/2008, 23h58
  5. code retour d'un thread
    Par andromeda dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 25/07/2007, 08h17

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