#1: ano
#2: x=unknown, y=20000, z=20000, v=unknown
#3: sync { z++ } provede atomicky read-inc-write, zatímco v++ (atomicky read), inc a (atomicky write), tedy mezivýsledek může být přepsán paralelním threadem. sync { z++; z++; } bude vždy zvyšovat o dvě a pokud i getZ() bude synchronized, nikdy nevrátí liché číslo (případně při optimalizaci nebude liché číslo nejspíš ani uloženo do paměti). u { v++; v++; } viz výše, žádná očekávání.
Díky za článek. Ten pagefault je zajímavá myšlenka :-)