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

Java Discussion :

[thread][methodologie]Quelque chose que je ne comprends pas!


Sujet :

Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 162
    Points : 72
    Points
    72
    Par défaut [thread][methodologie]Quelque chose que je ne comprends pas!
    Bonjour,
    Voilà j'ai bien peur que mon problème ne soit pas facile à expliquer mais je vais essayer.
    Voici mon main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     public static void main(String args[] ){ 
                  new AdaptateurP.AdaptateurSimulation();
        }
    La classe AdaptateurSimulation crée deux principaux objets : une fenêtre graphique(SimulationFrame) et un Planificateur qui va lancer une simulation et intergair avec la fenetre graphique.
    Voici comment j'instancie la classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    public final class AdaptateurSimulation{
    private static TacheSimulee racine ;
        private static Planificateur p ;
        private static SimulationFrame simulFrame ;
     
       public AdaptateurSimulation(){
            racine = new TacheSimulee(AdaptateurNF.AdaptateurSimulation.getTacheRacine());
            simulFrame = new SimulationFrame(racine);
            p = new Planificateur(racine);
        }
     
         public static void simuler(){
             p.simule();
         }
     
    }
    si dans le constructeur de Planificatieur je lance directement la méthode simule(), ma simulation se déroule à merveille.
    Par contre je voudrais que cette simulation n'est lieu que sur le clic d'un bouton de mon interface graphique. Je fais donc tout betement sur le clic du bouton un AdaptateurSimulation.simuler () dans ce cas l'application se bloque au niveau d'un wait() dans le déroulement de ma simulation!! Je suis obligée de tuer l'appli car rien ne se passe pas moyen de cliquer, ou de fermer avec la croix. Et bien sûr aucune exception...

    Alors voilà je ne comprends pas la différence entre appeler directement simule() dans le constructeur du Planificateur ou l'appeler dans ma méthode simuler() de l'adaptateur. L'instance p est pourtant bien la même!!
    J'espère que quelqu'un a compris qq chose a tout ça et a éventuellement une suggestion???

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 162
    Points : 72
    Points
    72
    Par défaut
    En tout cas ce qui est sûr c'est que c'est lié au wait() car quand j'enlève cette partie de mon code plus rien ne se bloque!! Mais Evidemment ça n'a plus du tout le comportement voulu!
    Il ya encore sans doute des subtilités dans les threads qui m'échappent complètement

  3. #3
    Membre confirmé Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Points : 649
    Points
    649
    Par défaut
    Il me semble que tu as à faire à un probleme classique ( mais je me trompe peux etre )....

    Lorsque tu clique sur le bouton, le Thread qui gere l'interface graphique va executer le code correspondant a ton clique sur le bouton. C'est a ce niveau que ton simule est appele ... mais il est execute dans le meme thread que ton onterface graphique. et au bout d'un moment, tu tombe sur un wait .... ton interface est donc en attente ... Pour regler ton probleme, il me semble que tu devrqit creer un thread lorsque tu appele la methode simule ... ca correspondrait plus a ce que tu souhaitais faire a la base ...

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 162
    Points : 72
    Points
    72
    Par défaut
    Ok je comprends ce que tu veux dire... Je vais essayer de m'y prendre autrement! Et si ça marche pas je reviendrais! :-)

  5. #5
    Membre confirmé Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Points : 649
    Points
    649
    Par défaut
    et si ca marche, n'oublies pas de nous le dire et de mettre ton tag resolu

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 162
    Points : 72
    Points
    72
    Par défaut
    Bon voilà j'ai ajouté un thread dans la méthode simule du Planificateur. Ca a l'air beaucoup mieux. Restent des soucis mais que je devrais pouvoir régler seule comme une grande :-)
    Je m'empresse de mettre un tag résolu!!!!

    Merci!!

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 28/06/2012, 12h39
  2. Une chose que je ne comprend pas avec les editors/renderer
    Par Djobird dans le forum Composants
    Réponses: 6
    Dernier message: 30/03/2009, 10h24
  3. Quelques trucs que je ne comprends pas
    Par darkbob dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 30/10/2006, 10h15
  4. [PostGreSQL] une erreur que je ne comprends pas
    Par flo78 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 02/02/2006, 10h18
  5. [Rave] un message que je ne comprends pas
    Par Clotilde dans le forum Rave
    Réponses: 2
    Dernier message: 30/09/2003, 21h46

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