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 du Club
    Profil pro
    Étudiant
    Inscrit en
    août 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : août 2003
    Messages : 66
    Points : 51
    Points
    51
    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 régulier
    Profil pro
    Inscrit en
    juillet 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2004
    Messages : 77
    Points : 83
    Points
    83
    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 du Club
    Profil pro
    Étudiant
    Inscrit en
    août 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : août 2003
    Messages : 66
    Points : 51
    Points
    51
    Par défaut
    Thx

  4. #4
    Expert éminent sénior

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

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : juin 2003
    Messages : 5 745
    Points : 10 642
    Points
    10 642
    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 Expert

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

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

    Informations forums :
    Inscription : juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    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..)
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    mars 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2004
    Messages : 24
    Points : 29
    Points
    29
    Par défaut
    sous *nix => mutex, sémaphore
    discutez de programmation en direct sur irc : irc.zefunchat.net canal #programmation

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    mars 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2004
    Messages : 24
    Points : 29
    Points
    29
    Par défaut
    sinon, boost fait ca tres bien avec boost::mutex
    www.boost.org
    discutez de programmation en direct sur irc : irc.zefunchat.net canal #programmation

+ 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