Verständnisfragen

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Verständnisfragen
Ich habe noch zwei kurze Fragen:

  1. Folgende Aussage: Betritt ein Aktivitätsfaden (Thread) A einen synchronized(schloss-)-Block, werden für ihn parallele Zustandsänderungen eines anderen Aktivitätsfaden sichtbar, die vor oder während eines synchronized(schloss-)-Blocks gemacht wurden.
    Diese Aussage ist falsch (Forum)
    Stimmt diese Aussage deswegen nicht, weil Thread A beim Betreten des synchronized Blocks nur die Veränderung an den entsprechenden darin enthaltenen Variablen sieht? Und eben nicht sämtliche Änderungen des anderen Threads?

  2. Wenn ein Thread an einem synchronized Block ankommt, wird dann sicher gestellt, dass er von allen Variablen den derzeit aktuellen Wert bekommt? (auch wenn diese während des Blocks noch z.B. durch andere Zugriffe geändert werden könnten?)

Es wäre super, wenn mir jemand die Fragen noch beantworten könnte.


also zu 1:

https://fsi.informatik.uni-erlangen.de/forum/thread/11652-synchronized-Sichtbarkeiten

EDIT - bin mir nicht ganz sicher wie das zu interpretieren ist - weil theoretisch ist es ja nur so das alle sachen sichtbar werden wenn der andere Thread zwischenzeitlich im synch block war => deswegen ist das falsch

zu 2:
Nein - nur von Variablen die vorher von Threads geändert wurden die zwischenzeitlich das gleiche “lock” verwendet haben.

und Ja er kriegt natürlich zu beginn die aktuellen Werte würde ja sonst keinen Sinn machen.