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

Windows Discussion :

section critique "static" ou pas?


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Par défaut section critique "static" ou pas?
    Oui le titre ne veut pas dire grand chose, et ma question va surement sembler stupide, ou farfelue, tant pis "celui qui demande passe pour un imbecile pendant 5 minutes, celui qui ne demande pas, restera un imbecile toute sa vie".

    question version theorique :

    Question : Est ce que lorsque j'ai une section critique dans une methode d'un objet. Cette section critique ne s'applique qu'à l'objet ou a la classe entiere?

    question version pratique :

    J'ai 3 threads

    thread A:
    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
    Classe test
    {
       public:
    
       void methode()
       { 
          section critique
            chose à faire
          fin section critique
       }
    };
    
    
    main()
    {
      test a1();
      test a2();
    }
    ThreadB
    ThreadC
    Question : la section critique rentre elle en jeu etant donné qu'il ne s'agit pas des memes objets?

  2. #2
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Tout dépend de comment tu entres dans ta section critique. Par exemple, si tu utilises un Mutex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Mutex mon_mutex;
    
    mon_mutex.Lock(); // section critique 
    
    // chose à faire 
    
    mon_mutex.Unlock(); //fin section critique
    Si chaque instance de la classe test possède son propre mon_mutex, alors il n'y aura aucune relation entre a1 et a2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class test
    {
    public:
        void methode();
    
    private:
        Mutex mon_mutex;
    };
    Maintenant, si toutes les instances partagent le même et unique mutex, ben oui alors la section critique s'applique à tout le monde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // .h
    class test
    {
    public:
        void methode();
    };
    
    // .cpp
    
    // Mutex commun à tout le monde
    Mutex mon_mutex;

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Par défaut
    ok donc une section critique est à considerer comme un membre quelconque. Merci pour tes explications et désolé pour cette question de débutant

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

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