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

Langage Java Discussion :

Synchronized en lecture


Sujet :

Langage Java

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 391
    Points : 185
    Points
    185
    Par défaut Synchronized en lecture
    Bonjour à tous =D,

    j'ai une toute petite question et j'espère que quelqu'un pourra y répondre ici (je n'en doute pas ^^).

    J'utilise deux threads dans mon programme (un zelda-like avec libgdx) et je me heurte à un problème de concurrence.

    J'aimerais savoir si on est obligé d'utiliser le mot clef "synchronized" pour sécuriser une donnée qui ne sera utilisé qu'en lecture ? Parce que j'aimerais éviter mais j'ai l'impression que ce n'est pas évitable.

    Merci

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 545
    Points : 21 601
    Points
    21 601
    Par défaut
    Hello,

    je suis pas sûr de ce que tu appelles "sécuriser", mais si ta variable peut être modifiée par d'autres threads, le thread en cours ne le verra pas sans une synchronisation quelconque.
    Pour une variable simple, un synchronized n'est pas forcément nécessaire. Rendre la variable volatile peut suffire. Mais s'il y en a plusieurs, il va falloir utiliser synchronized ou réfléchir plus profondément.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre chevronné
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Points : 1 993
    Points
    1 993
    Par défaut
    Si tu ne veux faire que de la lecture de ta variable, sache que le synchronized est TRES couteux... Le synchronized bloque tout quelle que soit l'action que tu fais.

    Regarde du côté du ReadLock ( https://docs.oracle.com/javase/7/doc...WriteLock.html ) ou des objets de type AtomicXXX ( https://docs.oracle.com/javase/7/doc...icInteger.html ) pour éviter les blocages pour de la simple lecture.
    Je ne suis pas mort, j'ai du travail !

  4. #4
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 320
    Points : 3 740
    Points
    3 740
    Billets dans le blog
    12
    Par défaut
    Si tu ne souhaites faire que de la lecture de tes variables (cf : pas d'affectation, pas de mutation) pour l'ensemble des threads, utiliser un synchronized est juste inutile...
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

Discussions similaires

  1. Lecture synchrone et asynchrone d'une file de message
    Par asnaeb dans le forum Débuter
    Réponses: 1
    Dernier message: 09/05/2010, 19h27
  2. Réponses: 0
    Dernier message: 13/09/2008, 18h42
  3. Lecture d'une image bitmap
    Par Geronimo dans le forum x86 32-bits / 64-bits
    Réponses: 18
    Dernier message: 28/06/2002, 13h01
  4. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2002, 11h24
  5. Réponses: 6
    Dernier message: 25/03/2002, 22h11

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