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

Threads & Processus C++ Discussion :

Variable static avec thread


Sujet :

Threads & Processus C++

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2003
    Messages : 66
    Par défaut Variable static avec thread
    Bonjour

    Voici la situation :
    J'ai une fonction f() qui contient une variable static. Le premier appel à f() est effectué dans le thread A. Est-il possible d'acceder à la variable static de f() dans le thread B ?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 77
    Par défaut
    quelque soit le nombre de therads appelant f, ils verront tous la même variable static,

    et c'est la que ca va devenit drole :

    suppose que cette variable soit une chaine de caractères, tu fais un strcpy dessus dans un thread, le thread est préempté et un autre commence son strcpy....
    quand le premier reprend la main, il écras ela moitié de ce qu'a écrit l'autre....

    donc faudra dans la plupart des cas "sérialiser" l'accés à ta variable

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2003
    Messages : 66
    Par défaut
    Thx

  4. #4
    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
    C'est entre processus que chacun a sa propre variable static, sauf cas spécial. Les thread partagent le même espace d'adressage.

  5. #5
    mat.M
    Invité(e)
    Par défaut
    Sous Linux/ Unix je ne sais pas mais en programmation Windows il y a des API comme InterLockIncrement si je ne me trompe destinées à cela

  6. #6
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Sous Linux/ Unix je ne sais pas mais en programmation Windows il y a des API comme InterLockIncrement si je ne me trompe destinées à cela
    Oui mais uniquement pour "proteger" une incrementation. Sinon pour syncrhoniser les threads on retrouve les objets connus ( event , section critique..)

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 24
    Par défaut
    sous *nix => mutex, sémaphore

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 24
    Par défaut
    sinon, boost fait ca tres bien avec boost::mutex
    www.boost.org

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/11/2007, 17h44
  2. [MT] Galère avec thread et mutex pour accès variable
    Par wadcyr8_197 dans le forum Threads & Processus
    Réponses: 36
    Dernier message: 26/07/2007, 14h45
  3. Réponses: 4
    Dernier message: 04/02/2007, 19h39
  4. [POO] Problème avec une variable static
    Par grimsk dans le forum Langage
    Réponses: 5
    Dernier message: 23/05/2006, 01h58
  5. [C++] Pb avec les variable static dans les classe
    Par quantik-revolution dans le forum C++
    Réponses: 3
    Dernier message: 03/03/2006, 18h40

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