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 :

Passage d'argument à un thread


Sujet :

Concurrence et multi-thread Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 39
    Points : 16
    Points
    16
    Par défaut Passage d'argument à un thread
    Re-salut à tous les developpeurs et developpeuses du forum Java,
    ma question cette fois ci est je pense que vous l'avez compris en lisant le titre : Peut-on passer un/des argument(s) à un Thread en Java, et si oui
    comment faire ?
    Voilou voilou je m'en remet a vos avis éclairés ...

  2. #2
    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 : 41
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Il te suffit de créer un classe qui étend la classe Thread (ou qui implémente Runnable), et qui contient une variable de classe que tu peux positionner comme tu veux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public class MonThread extends Thread {
       private String paramDeMonThread = null;
     
       public MonThread(String param) {
          paramDeMonThread = param;
       }
     
       public void run() {
          // Action de ton Thread utilisant le paramètre
       }
    }
    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

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 39
    Points : 16
    Points
    16
    Par défaut
    Ok tout s'explique, je pensais que seul le code contenu dans le methode run() était accessible au Thread.
    En fait si j'ai bien compris, on peut acceder a toutes les données de l'objet
    depuis sa methode run(), ou alors je suis completement a coté de la plaque?

  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 : 41
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    La méthode run est une méthode tout à fait ordinaire de la classe MonThread... Elle peut donc accéder aux variables de classe, faire appel à d'autres méthodes de la classe, à des méthodes d'autres classes...

    Sa seule spécificité est d'être la méthode qui sera appelée et exécutée lorsqu'on démarrera le Thread:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Thread monThread = new MonThread();
    monThread.start(); // appel de la méthode run() ici
    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 à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 39
    Points : 16
    Points
    16
    Par défaut
    Ok c'est un peu plus clair pour moi maintenant, et en fait monTHread.start()
    elle renvoi quoi ??

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Points : 675
    Points
    675
    Par défaut
    Citation Envoyé par javadoc

    public void start()

    Causes this thread to begin execution; the Java Virtual Machine calls the run method of this thread.

    The result is that two threads are running concurrently: the current thread (which returns from the call to the start method) and the other thread (which executes its run method).

    It is never legal to start a thread more than once. In particular, a thread may not be restarted once it has completed execution.

    Throws:
    IllegalThreadStateException - if the thread was already started.
    See Also:
    run(), stop()

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 151
    Points : 151
    Points
    151
    Par défaut
    Citation Envoyé par crunk
    Ok c'est un peu plus clair pour moi maintenant, et en fait monTHread.start()
    elle renvoi quoi ??
    Salut ,
    Comme te l'a dit CyberChouan. Il te faut lancer la méthode start pour que ce que tu as mis dans run puisse être executer.c'est tout.

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

Discussions similaires

  1. Passage d'argument à un thread
    Par Picolo18 dans le forum Langage
    Réponses: 6
    Dernier message: 26/11/2008, 17h34
  2. Passage d'arguments à un thread
    Par flo_k dans le forum Windows
    Réponses: 3
    Dernier message: 09/06/2008, 20h12
  3. Probleme de passage d'arguments dans un thread
    Par TheBAT dans le forum POSIX
    Réponses: 4
    Dernier message: 05/02/2007, 19h58
  4. Passage d'argument à un thread avec _Beginthreadex
    Par likenoother dans le forum MFC
    Réponses: 4
    Dernier message: 13/09/2006, 10h02
  5. Problème de passage d'argument a un thread
    Par goof_22 dans le forum SDL
    Réponses: 2
    Dernier message: 19/04/2006, 17h59

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