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

avec Java Discussion :

Appel de méthode de thread


Sujet :

avec Java

  1. #1
    ghostbrain
    Invité(e)
    Par défaut Appel de méthode de thread
    Bonjour,
    J'ai commence la programmation Java il y a peu et en cours on a un projet a faire pour la fin du semestre (jeu de plateau plus precisement). J'ai pour ma part decider de faire un RPG. Je souhaite utliser les threads. J'en ai deja utilise en C, mais Java a toute une autre logique. Je souhaiterai s'il vous plait comment appeler une methode de thread.

    voila ce que je souhaiterai: Creer par exemple une classe monstre capable de pourchasser notre heros (chose normale) sans pour autant que notre heros soit paralyse par la p... paralyse tout court parce que le code est sequentiel.

    voici ce que j'ai compris d'un thread:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    class Whatever extends Threads{
     
        public whatever(type argument){ //constructor
          //code
        }
        public void run(){
            try{
               //code a executer lors de l'appel du thread.
            }
            catch (InterruptedException e){} //cette partie me renvoie une erreur
     
        }
    }
    Je souhaiterai pouvoir utiliser des methodes mais je ne sais pas ou les placer et comment !! voici un exemple de code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public static void main(String args[]){
         Whatever nomDeVariable = new Whatever(args);
         ...
         nomDeVariable.searchAndDestroy(notreHero.getPosX(), notreHero.getPosY());
    }
    Y a t il un moyen d'utiliser des methodes dans les threads? Parce que tous les exemples et tous les cours sur les threads que j'ai vu montrent des lancements de boucle (for et while) comprise dans la methode run() qui d'ailleurs n'est meme pas appellee (au lieu de cela on lance le thread avec start()).

    Quelqu'un peut il m'aider? Merci d'avance.

    P.S.
    Je recoit souvent une erreur de type "InterruptedException is never thrown in body of corresponding try statement"

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Points : 2 657
    Points
    2 657
    Par défaut
    Tu peux faire tout ce que tu veux dans Thread tant que tu ne sors pas de ton Thread (au niveau des données).

  3. #3
    ghostbrain
    Invité(e)
    Par défaut
    Citation Envoyé par deathness Voir le message
    Tu peux faire tout ce que tu veux dans Thread tant que tu ne sors pas de ton Thread (au niveau des données).
    Bonjour et merci d'avoir répondu, je ne peux rien tester avant ce soir mais je souhaiterai avoir une petite precision: est ce que ça veut dire que je peux faire des appels de mes methodes ou est ce que je peux aussi
    Creer mes methodes dans les threads? Je pense q'un probleme risque de se poser: imaginons que je fasse appel à plusieurs methode dans le thread ne s'executeraient t'ils pas de maniere sequentiel? l'un puis le suivant et ainsi de suite jusqu'à ce que tout appel est été executé et/ou que le thread soit arreté.

    J'ai longuement reflechi au sujet aujourd'hui et je pense avoir trouvé une solution que je n'ai pas encore testé (je ne peux pas compiler là où je suis) . Un ami m'a dit que l'on peut declarer plusieur thread dans une classe (à verifier) don si je suis la logique: Ne pourrai-je pas plutot creer un thread dans chacune des methodes (Je sais que l'on peut faire des classes internes et que l'on peut appeler une methode dans une autre). Pensez vous que c'est possible de faire ça?

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Points : 2 657
    Points
    2 657
    Par défaut
    Dans un thread les exécutions du code sont séquentiel. Donc oui les appels de méthode que tu feras seront séquentiel.

    Ensuite un Thread c'est juste un objet qui va appeler sa méthode run pour exécuter son code. Tu peux donc créer autant d'objet Thread que tu veux dans une class.

    Après il faudra savoir ce que tu veux faire pour t'indiquer quoi faire. Mais l'idée de faire un Thread par méthode n'est a priori pas la bonne.

  5. #5
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Citation Envoyé par ghostbrain Voir le message
    Je souhaite utliser les threads. J'en ai deja utilise en C, mais Java a toute une autre logique. Je souhaiterai s'il vous plait comment appeler une methode de thread.
    Ha bon un thread en java n'est pas le même qu'en C, on en apprends de belle tout les jours ... moi je serais toi je relirais un peu la theorie des threads (creation, synchronisation, exclusion etc ...) avant de jouer avec.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Points : 2 657
    Points
    2 657
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Ha bon un thread en java n'est pas le même qu'en C, on en apprends de belle tout les jours ... moi je serais toi je relirais un peu la theorie des threads (creation, synchronisation, exclusion etc ...) avant de jouer avec.
    Ha oui j'avais même pas relevé

    je ne connais pas trop le c (ou plutôt je m'en souviens plus) mais j'imagine qu'il voulait plutôt dire que cela ne se déclare pas de la même manière.

  7. #7
    ghostbrain
    Invité(e)
    Par défaut
    Citation Envoyé par deathness Voir le message
    ...mais j'imagine qu'il voulait plutôt dire que cela ne se déclare pas de la même manière.
    Hey! Deathness a absolument raison si tu regardai mieux mon post j'ai dit:

    Citation Envoyé par ghostbrain Voir le message
    J'en ai deja utilise en C, mais Java a toute une autre logique
    et non "...mais les threads en Java ont ..." Bref, javoue ne pas en savoir des masses sur les threads on a seulemnt survole le sujet que ce soit en C ou en java, et je sais parfaitement que le concept est le meme. (Partage de memoire, mais non de la pile, exclusions mutuelles, ...). Mais je n'en sais pas plus que ce qu'il m'a suffit pour faire mes projets. Mais si tu as tant envie que j'evolue dans ce domain. Je t'invite a me conseiller deux ou trois ouvrages. merci Oh et je parle de la logique differente de Java par rapport a C parce que Java est oriente objet.

    Passons. Ce que je souhaiterai faire serai un thread pour le mouvement aleatoire (surveillance) du monstre et un thread pour la "Search & destroy" de l'ennemi (enfin le heros). mais je viens de me rendre compte que cela n'a aucun interet etant donne que ne peut pas poursuivre et detruire tout en surveillant (a moins d'etre un mutant demultiplicateur et meme la c'est deux entites objets differents. l'un surveillant et l'autre poursuivant). je tiens a te remercier de m'avoir donne de plus ample details. je considere donc le post resolu. . je le cloturerai d'ici lundi (j'attend de voir si on me conseille des livres )

Discussions similaires

  1. Réponses: 9
    Dernier message: 30/10/2013, 12h48
  2. Réponses: 3
    Dernier message: 02/07/2013, 09h04
  3. Réponses: 4
    Dernier message: 14/02/2011, 10h16
  4. Threads. Peut-on appeler la méthode d'un thread depuis un autre thread ?
    Par Pierre8r dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 05/12/2008, 11h48
  5. [Thread] appel de méthodes non-synchronized dans une méthode synchronized
    Par dr23fr dans le forum Concurrence et multi-thread
    Réponses: 1
    Dernier message: 24/06/2008, 22h47

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