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] Gestion de plusieurs thread


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 be_tnt
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Par défaut [Thread] Gestion de plusieurs thread
    Voilà,

    J'ai une classe qui est chargé d'initializer les composants de mon application. Elle initialise entre autres une blocking queue, un dispatcher lié à la blocking queue et un ensemble de threads (handler) traitant de requêtes reçu du dispatcher.

    Cela donne:
    <BlockingQueue> <--- Dispatcher ---> Handler 1
    ---> Handler 2
    ---> ....

    Chaque requête écrite dans la blocking queue est récupéré par le dispatcher. Celui-ci sélectionne alors un handler de libre et lui envoie la requête à traiter.

    Chaque handler ne traite qu'une requête à la fois.

    Je suppose que dans mon handler, je peux utiliser un objet sur lequel écoute le handler. Il devra attendre jusqu'à ce que la ressource soit dispo (synchronisation).

    Maintenant je voudrais aussi que mon monitor puisse connaître l'état de chaque thread qu'il a démarré. Est-ce possible? Si oui , comment se fait l'implémentation? Est-ce que le monitor peut envoyer un signal aux threads crées (du style: kill toi )


  2. #2
    Membre chevronné Avatar de spekal
    Inscrit en
    Mai 2005
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 502
    Par défaut
    Il y a les formes classiques du style Thread.isAlive(). Tu peux également préparer tes propres formes de Thread, simplement en dérivant la classe Thread. Tu peux même te créer tes propres groupes de threads, avec ThreadGroup.

    Et en java 5, tu as également le paquetage java.util.concurrent, avec lequel tu peux construire des pools.

    Veux-tu d'autres précisions ?

  3. #3
    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,

    Citation Envoyé par be_tnt
    Je suppose que dans mon handler, je peux utiliser un objet sur lequel écoute le handler. Il devra attendre jusqu'à ce que la ressource soit dispo (synchronisation).
    Si tu utilises les BlockingQueue pour passer les objets d'un thread à l'autre tu ne devrait pas avoir de problème de synchronisation, puisque c'est déjà géré...

    Citation Envoyé par be_tnt
    Maintenant je voudrais aussi que mon monitor puisse connaître l'état de chaque thread qu'il a démarré. Est-ce possible? Si oui , comment se fait l'implémentation?
    Avec Java 5.0 il suffit d'utiliser la méthode getState()...

    Citation Envoyé par be_tnt
    Est-ce que le monitor peut envoyer un signal aux threads crées (du style: kill toi )
    Tu peux utiliser la méthode interrupt() pour cela. Bien sûr il faut que ton Thread gère cela correctement, en vérifiant la valeur retourné par isInterrupted(), et en traitant les InterruptedException des méthodes bloquantes...

    a++

  4. #4
    Membre éclairé Avatar de be_tnt
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Par défaut
    Merci pour les infos.

    Je vais essayer un peu tout ça pour voir

Discussions similaires

  1. Problème Thread lancement de plusieurs Thread
    Par amath1 dans le forum Android
    Réponses: 1
    Dernier message: 30/01/2013, 23h51
  2. [THREAD] WSAEventSelect dans plusieurs threads
    Par Invité dans le forum Visual C++
    Réponses: 3
    Dernier message: 05/03/2007, 14h41
  3. [Thread]Comment créer plusieurs thread à la demande??
    Par Devil666 dans le forum Concurrence et multi-thread
    Réponses: 8
    Dernier message: 14/09/2005, 13h29
  4. création de plusieurs threads dans WinMain
    Par ChidoriRasengan dans le forum DirectX
    Réponses: 1
    Dernier message: 15/06/2005, 21h36

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