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 :

Simulation d’activité d'un feu tricolore


Sujet :

avec Java

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Janvier 2014
    Messages : 30
    Points : 0
    Points
    0
    Par défaut Simulation d’activité d'un feu tricolore
    Salut,

    j'ai un TP dans le System d'exploitation

    Énoncé :

    Ecrire un programme en java qui permet de simuler l’activité d’un feu tricolore (rouge-jaune-vert) . Chaque feu est représenté par un thread. L’utilisateur choisit le feu par lequel la séquence d’allumage commencera, ainsi la suite de la séquence continuera.

    Mes problèmes :

    - le professeur nous demande l'utilisation de sémaphore et synchronisation
    - le premier thread qui démarre bloque le deuxième et troisième thread, après le deuxieme thread qui démarre bloque le premier et troisième thread et ainsi de suite.

    S'il vous plait, j'ai besoin de votre aide parce que Je n'ai pas bien étudié les sémaphores et la synchronisation. Merci d'avance.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2012
    Messages
    3 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3 020
    Points : 16 093
    Points
    16 093
    Par défaut
    Et donc, tu bloques où exactement? Parce que je doute que quelqu’un te fasse tout ton TP à l'oeil...

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Si tu ne connais pas bien les notions de sémaphores et de synchronisation, tu peux commencer par regarder ces tutoriels :


  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Janvier 2014
    Messages : 30
    Points : 0
    Points
    0
    Par défaut
    Merci pour les réponses
    mais j'ai un difficulté dans le comprend de thread et synchronisation .. sémaphore
    Est ce que il y a des vidéos pour bien fixe l'aide de cette TP

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Janvier 2014
    Messages : 30
    Points : 0
    Points
    0
    Par défaut
    Jusqu'à maintenant je ne trouve pas comment résoudre ce problème.
    Merci de m'aider.

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Mais qu'est-ce que tu as déjà fait ? Tu bloques où ?

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Janvier 2014
    Messages : 30
    Points : 0
    Points
    0
    Par défaut
    comment faire le déroulement de trois thread avec l'utilisation de synchronisation et semaphore !!

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Tout est dans les tutoriels que je t'ai donné. Et à priori dans ton cours aussi. Il y aussi des discussions dans ce forum, en cherchant un peu, genre par exemple http://www.developpez.net/forums/d15...ify-notifyall/.

    • Déjà sais-tu au moins créer et lancer un Thread ?
    • Ensuite, pour les sémaphores, en version simple, tu as la méthode wait() qui permet d'attendre et la méthode notifiy() qui permet de débloquer un thread entrain d'attendre
    • wait() et notify() s'appellent sur une instance d'objet créée à cet effet, et qui doit donc être accessible du thread qui doit être bloqué, et de celui qui doit le déloquer
    • pour pouvoir appeler wait() ou notify() un thread doit avoir l'exclusivité sur l'instance : il faut donc mettre l'appel dans un bloc synchronized sur l'instance.
    • Supplément (quand tu auras fait fonctionner la base ci-avant) : normalement, on fait toujours l'appel du wait dans une boucle while(condition) telle que la condition soit vraie, cette condition étant passé à false par le thread qui fait le notify, afin d'éviter un blocage "sans fin".

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Janvier 2014
    Messages : 30
    Points : 0
    Points
    0
    Par défaut
    Maintenant je n'a plus aucun problème dans la création des threads. Mais comment faire les actions de mon TP dans les threads ? Surtout la synchronisation.

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Janvier 2014
    Messages : 30
    Points : 0
    Points
    0
    Par défaut
    Voici mon essai :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    package homework;
     
    public class HomeWork extends Thread {
     
        public void light(){
            System.out.println(Thread.currentThread().getName());
        }
     
     
       public void run(){
           while(true){
               light();
               try{
                   Thread.sleep(1000);
                    } catch(InterruptedException e){}            
           }
     
     
       }
        public static void main(String[] args) {
            Thread yellow = new HomeWork();
            Thread red = new HomeWork();
            Thread green = new HomeWork();
     
           yellow.setName("yellow");
           red.setName("red");
           green.setName("green");
     
           yellow.start();
           red.start();
           green.start();
     
     
        }
     
    }

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Janvier 2014
    Messages : 30
    Points : 0
    Points
    0
    Par défaut
    SVP , une solution

  12. #12
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Ce forum n'est pas là pour te donner des solutions toutes faites ni même des cours, mais pour t'aider à résoudre des problèmes particuliers dans un code que tu auras écrit (aussi faut-il poser des questions). Essaye de résoudre ton exercice, et si tu as des problèmes particuliers on verra ce qu'on peut faire.

Discussions similaires

  1. [AC-2007] Indicateur feu tricolore dans un état
    Par Audeo dans le forum IHM
    Réponses: 3
    Dernier message: 23/11/2013, 02h56
  2. Faire fonctionner un indicateur feu tricolore en macro VBA
    Par Arnold35 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/06/2010, 08h32
  3. Simulation reseau d'activité aléatoire
    Par harris_macken dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 17/02/2008, 23h13
  4. Feu tricolore
    Par javajava dans le forum Graphisme
    Réponses: 2
    Dernier message: 14/05/2007, 11h59

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