A rovnou si odpovim :-)

V kontstruktoru totiz je uvedeno:

this.mutex = this

"Zahada" je tedy vyresena. Omlouvam se.

LZ

3.4.08, Lukáš Zapletal <[EMAIL PROTECTED]>:
> Dobry den,
>
>  mam dotaz ohledne Collections.synchronizedMap. Tato metoda obali mapu
>  (nebo resp. jina metoda jinou kolekci) implementaci, ktera
>  synchronizuje vsechny metody oproti clenske promenne "mutex". Toto je
>  implementace Sunu ve verzich 5 a 6.
>
>  V dokumentaci se ale doporucuje pri iterovani pouzit synchronized
>  blok, aby nedochazelo ke "concurrent exceptions". Co me udivuje je
>  vsak to, ze pro synchronized blok ma byt pouzit jako mutex primo
>  instance kolekce (v prikladu je to "m"). Tohle by preci nemelo
>  fungovat, kdyz se kolekce interne synchronizuje oproti prvku
>  "m.mutex", ne?
>
>   Map m = Collections.synchronizedMap(new HashMap());
>       ...
>   Set s = m.keySet();  // Needn't be in synchronized block
>       ...
>   synchronized(m) {  // Synchronizing on m, not s!
>       Iterator i = s.iterator(); // Must be in synchronized block
>       while (i.hasNext())
>           foo(i.next());
>   }
>
>  Mozna potrebuju postouchnout, neco mi zrejme unika. Diky
>
>
>  --
>  Lukas Zapletal
>  http://lukas.zapletalovi.com
>


-- 
Lukas Zapletal
http://lukas.zapletalovi.com

Odpovedet emailem