HashMap

Résolu
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 23 févr. 2007 à 13:23
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 2 mars 2007 à 18:51
Salut:

On sait que la classe java.util.HasMap n'est pas synchronisée comment la rendre synchronisée pour travailler l'esprit tranquille en multi-threading.




________________________________________________________________________________
A.B. : 


Il y a deux sortes de gens : ceux qui peuvent être heureux et ne le sont pas, et ceux qui cherchent le bonheur sans le trouver.

6 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
23 févr. 2007 à 13:45
Salut,

place l'objet dans un block synchro ou dans une méthode synchro.

exemple block synchro :
private HashMap<String, String> map = new HashMap<String, String>();
.....

public void add(String key, String value){
    synchronized (map) {
        map.put(key, value);
    }
}

exemple méthode synchro :
private HashMap<String, String> map = new HashMap<String, String>();

.....


public synchronized void add(String key, String value){

    map.put(key, value);

}

perso je pencherai plus sur le block synchro.

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
3
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
23 févr. 2007 à 14:19
Salut,

oui et nan....
Oui : Elle synchro toutes les 2 l'objet map.
Non : La synchro sur une méthode s'applique à touts les membres de celle-ci et peut-être des membres qui non pas besoin d'une synchro ou qui ne doivent pas avoir de synchro, contrairement au bloque de syncrho qui lui ne fera sont job que pour les traitements contenu dedans.

je te conseil de faire un séjour ICI

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
3
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
2 mars 2007 à 18:43
Salut:



Map m = Collections.synchronizedMap (new HashMap (...));




__________________________________________________________
A.B. :  La lumière voyage plus vite que le son. C'est pourquoi certaines personnes paraissent brillantes jusqu'à ce qu'elles commencent à parler ...
3
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
23 févr. 2007 à 13:48
Salut:

Joli. On apprend de toi.




__________________________________________________________
A.B. :  Suis le conseil de celui qui te fait pleurer, et non de celui qui te fait rire.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
23 févr. 2007 à 13:52
Salut:



Une autre question:



J'ai vu que tu utilises deux types d'écritures:



1.



public void add(String key, String value){
    synchronized (map) {
        map.put(key, value);
    }
}



2.




public synchronized void add(String key, String value){
    map.put(key, value);
}







Est ce qu'elles sont équivalentes?





___________________________________________________________________________
A.B. :  La lumière voyage plus vite que le son. C'est pourquoi certaines personnes paraissent brillantes jusqu'à ce qu'elles commencent à parler ...
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
2 mars 2007 à 18:51
Salut,

ouep c'est bien comme truc mais quand tu vois le code source ICI(recherche l'objet SynchronizedMap dans la page) c'est quand meme à eviter si tu ne veux synchronizer qu'une seule méthode et non TOUTE la map

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
Rejoignez-nous