Je suis en train de lire un truc dans la Javadoc qui m'intrigue un peu. Pour synchronizer un HashSet (par exemple), ils disent de faire le code suivant :
Code :
- Set s = Collections.synchronizedSet(new HashSet());
- ...
- synchronized(s) {
- Iterator i = s.iterator(); // Must be in the synchronized block
- while (i.hasNext())
- foo(i.next());
- }
|
Ce que je comprend pas, c'est l'utilité de la manière dont ont récupère le "synchronizedSet". Puisqu'on doit quand même gérer la synchronization. Logiquement, même si j'avais pas fait "synchronizedSet", mais un new simple de ma HashSet, si je met les instructions à risque dans des bloques "synchronized", mon truc sera tread-safe qd même, non ?