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]Comment créer plusieurs thread à la demande??


Sujet :

Concurrence et multi-thread Java

  1. #1
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 147
    Points : 78
    Points
    78
    Par défaut [Thread]Comment créer plusieurs thread à la demande??
    Bonjour à tous et à toutes,

    Voici mon problème, je possède un servlet dans laquel ce trouve un input dans lequel je récupère la nombre de threads a créer.
    Imaginons je rentre 3, je clic sur ok et par la suite je crée 3 threads qui s'excutent en //.
    Puis après j'en demande 4 par exemple,...

    Le but ici serait de créer un nombre de threads défini a chaque utilisation selon mes besoins ! Comment pourrais je faire cela?? Car ils doivent s'éxécuter en //, une boucle sur "n" ne servirait à rien dans mon cas !


    Merci a vou pour votre aide, ciao ciao

  2. #2
    Membre actif Avatar de austin P.
    Inscrit en
    Juin 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Juin 2004
    Messages : 182
    Points : 239
    Points
    239
    Par défaut
    tu peux créer des threads à l'aide de la class thread et runnable

    cependant mefie toi d'utiliser des threads avec des servlets : tu peux rapidement arriver à un point critique (montée en charge). A mon avis tu devrais essayer de trouver une autre solution
    En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Jacques Rouxel : "Les shadoks")

  3. #3
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    tu veux qu'ils s'executent en meme temps c'est ca ?

    tu peux les créer avec une boucle mais sans les demarrer (avec un boolean un false par exemple qui empeche le traitement et que tu places dans threadGroup) et les demarrer tous en meme temps via ThreadGroup http://java.sun.com/j2se/1.4.2/docs/...readGroup.html

  4. #4
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 147
    Points : 78
    Points
    78
    Par défaut
    Oui je veux qu'ils démarrent en même temps !

    Merci a toi je vais voir cette doc et je te dis quoi.

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    Citation Envoyé par austin P.
    tu peux créer des threads à l'aide de la class thread et runnable

    cependant mefie toi d'utiliser des threads avec des servlets : tu peux rapidement arriver à un point critique (montée en charge). A mon avis tu devrais essayer de trouver une autre solution
    La création de thread est couteuse en temps, tu peux pour palier a ce probleme utiliser un pool de Thread (en waiting state) et leur passer des objet Runnable afin qu'ils les executent

    Bon courage

    Sun Certified Business Component Developer
    Sun Certified Java Programmer
    --
    The definitive toolbox for GWT applications: gwt-toolbox
    My blog about Java and JEE: Benjamin's Blog

  6. #6
    Membre actif Avatar de austin P.
    Inscrit en
    Juin 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Juin 2004
    Messages : 182
    Points : 239
    Points
    239
    Par défaut
    ce n'est pas en terme de temps où je vois le risque mais de créer des threads sans stratégie de gestion. Le pool en est une.
    En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Jacques Rouxel : "Les shadoks")

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    Citation Envoyé par austin P.
    ce n'est pas en terme de temps où je vois le risque mais de créer des threads sans stratégie de gestion. Le pool en est une.
    oui j'ai bien compris je te citais pour ajouter une remarque à devil666

    Sun Certified Business Component Developer
    Sun Certified Java Programmer
    --
    The definitive toolbox for GWT applications: gwt-toolbox
    My blog about Java and JEE: Benjamin's Blog

  8. #8
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 147
    Points : 78
    Points
    78
    Par défaut
    Merci a tous pour votre aide, je continue mes cherches et je vous dis quoi dès que j'ai trouvé qq chose qui fct bien pour moi !

    Je posterai la code source sa aidera ptet d'autres personnes par la suite.

  9. #9
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 147
    Points : 78
    Points
    78
    Par défaut
    Bon et bien voilà ce que j'ai fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class SimpleThread extends Thread {
                 public SimpleThread(String str) {
                     super(str);
                 }
                 public void run() {
                         System.out.println("\n " + getName());
                         try {
                             sleep((int)(Math.random() * 1000));
                         } catch (InterruptedException e) {}
                     System.out.println("DONE! " + getName());
                 }
             }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
             public class ThreadsTest {
     
                 public static void createThread(String tN) {
                     new SimpleThread(tN).start();
                 }
     
             }
    Et ca fonctionne nikel !

    Voilà merci a tous, et j'espère que sa aidera quelqu'un par la suite, ciao

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

Discussions similaires

  1. [FAQ VC++]Comment créer un thread d'interface utilisateur?
    Par Gabrielly dans le forum Contribuez
    Réponses: 0
    Dernier message: 07/10/2009, 20h40
  2. Réponses: 0
    Dernier message: 11/03/2009, 16h30
  3. Comment gérer plusieurs threads en boucle ?
    Par [ZiP] dans le forum Langage
    Réponses: 15
    Dernier message: 12/07/2008, 13h12
  4. [PHP-JS] Comment créer un thread ?
    Par supertom dans le forum Langage
    Réponses: 7
    Dernier message: 31/05/2007, 10h45

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