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

C Discussion :

Mutex sur structure


Sujet :

C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Mutex sur structure
    Bonjour à toutes et à tous,

    J'aurais besoin d'une petite confirmation quant à l'utilisation (ou non) de mutex sur des structures.

    Admettons que nous ayons deux threads, et une structure S (globale) ayant comme variables : a et b (on va dire des entiers, mais peu importe).

    - dans le Thread1, on fait un calcul sur S.a
    - dans le Thread2, on fait un calcul sur S.b

    Dois-je protéger mes variables ? Ou l'accès à S.a et S.b est-il totalement indépendant ?

    D'avance merci pour vos réponses,

    Martin.

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    L'accès est totalement indépendant. Les threads ne vont pas travailler sur la même zone mémoire, donc pas besoin de verrouillage.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Cela dit, je ne sais pas si regrouper ces variables dans une même structure est une bonne chose, mais c'est un autre problème.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 374
    Points : 23 632
    Points
    23 632
    Par défaut
    C'est une bonne chose dans le sens où ça permet de limiter les déclarations globales à une seule instance lexicale, même si les différents membres de la structure agissent individuellement comme des variables globales indépendantes. Il est assez fréquent de définir ainsi un « contexte », exploité ensuite par les différentes fonctions travaillant en parallèle.

    Maintenant, ça reste une variable globale (avec les problèmes que cela pose). Quitte à utiliser un préfixe pour accéder aux différentes variables (celui du nom de l'instance de la structure), autant passer cet identifiant en paramètre des fonctions concernées ou faire en sorte qu'elle l'acquièrent à travers un accesseur.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Merci pour ces réponses,

    Je suis bien conscient que l'utilisation de variables globales n'est sans doute pas la plus sûr et la plus propre des méthodes. Mais la question n'est pas là, des fois on récupère du code et on a pas le temps de tout remettre propre, donc on fait avec ce qu'on a. C'est ici mon cas.. Mais c'est un autre débat.

    L'accès est totalement indépendant. Les threads ne vont pas travailler sur la même zone mémoire, donc pas besoin de verrouillage.
    Merci pour la réponse, j'en suis pleinement satisfait (et rassuré).

    Résolu !

    Merci à tous

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/03/2007, 10h55
  2. Comparaison sur structure
    Par HaTnuX dans le forum C
    Réponses: 4
    Dernier message: 05/12/2006, 13h48
  3. Conseils sur structure de programme
    Par RR instinct dans le forum Langage
    Réponses: 6
    Dernier message: 21/09/2006, 14h44
  4. Réponses: 2
    Dernier message: 07/07/2006, 09h57
  5. [Structures]Problème sur structures
    Par kendras dans le forum C++
    Réponses: 5
    Dernier message: 07/06/2006, 10h20

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