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 :

synchronisation et instances multiples


Sujet :

Langage Java

  1. #1
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut synchronisation et instances multiples
    Bonjour

    Je lis l'excellent tutorial "Java et la synchronisation", mais une question me taraude l'esprit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class ListeTab {
     
        private String[] tab = new String[50];
        private int index = 0;
     
        synchronized void ajoute(String s) {
            tab[index] = s;
            index++;
        }

    Dans la mesure ou la classe n'est pas un singleton, que le String[]tag n'est pas static final, a quoi sert la synchronisation puisque pour chaque threads qui exécutent en parallèle il y aura autant d'objet ListeTab que de threads
    ,et que chaque instance de ListeTab aura son String[] tab.


    Merci de vos réponses

  2. #2
    Membre émérite
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Par défaut
    Citation Envoyé par totoche Voir le message
    chaque instance de ListeTab aura son String[] tab.
    Entièrement d'accord, chaque instance de ListeTab aura son tableau de String.

    Citation Envoyé par totoche Voir le message
    pour chaque threads qui exécutent en parallèle il y aura autant d'objet ListeTab que de threads...
    C'est là où tu fais erreur, il n'y a pas forcément autant d'objets ListeTab que de Thread.
    Tant que tu utilises chaque ListeTab dans un seul Thread, le synchronized ne sert effectivement à rien.
    En revanche, si tu utilises une instance de ListeTab dans deux Thread (ou plus), tu peux avoir des problèmes et le synchronized se justifie.

  3. #3
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    Citation Envoyé par Deaf Voir le message
    En revanche, si tu utilises une instance de ListeTab dans deux Thread (ou plus), tu peux avoir des problèmes et le synchronized se justifie.
    en plein dans le mille, en effet je travaille avec Tomcat, la gestion des servlet repose sur ce mécanisme 1 instance de servlet et autant de threads que de requette http vers cette servlet, tu viens de me faire comprendre toute l'importance de la synchronisation pour ce genre de traitement merci.

    :
    Les threads issus d'un même processus partagent le même espace mémoire

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

Discussions similaires

  1. Tomcat demarrage d'instances multiple
    Par Jacques - 06 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 10/06/2008, 14h09
  2. Réponses: 1
    Dernier message: 03/02/2008, 18h05
  3. Instances multiples de Tk et PhotoImage
    Par atalon1 dans le forum Tkinter
    Réponses: 2
    Dernier message: 03/02/2008, 18h03
  4. [kate] interdire les instances multiples
    Par Eusebius dans le forum KDE
    Réponses: 0
    Dernier message: 24/08/2007, 11h45
  5. Instances multiples du meme objet
    Par jbjweb dans le forum wxPython
    Réponses: 3
    Dernier message: 26/02/2007, 10h34

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