Originariamente inviato da VioletFairy
Se io nella classe B leggo la variabile y e nel frattempo in un altro thread la variabile x viene modificata, leggo le modifiche fatte ad x oppure no?
Non so se mi sono spiegata, ma quello che vorrei sapere è mediante

codice:
int y = A.x;
copio il contenuto o il riferimento?
Sempre il valore!! E se fosse un tipo "reference", il valore È il riferimento (all'oggetto).

Detto in altre parole, una volta che è stato eseguito y=A.x, la x può variare quanto/come vuole ma su y non ha alcun effetto ..... fino ad un'altra assegnazione a y.

E se andiamo a vedere a livello di "visibilità" tra thread se la domanda cambia in: se un thread T1 fa y=A.x, poi un thread T2 cambia A.x, se successivamente il thread T1 rifa y=A.x "vede" la modifica a x??.

Non è detto! La questione sulla visibilità delle modifiche tra thread differenti va presa seriamente. Bisognerebbe marcare x come "volatile" e si avrebbe la visibilità garantita. Altrimenti andrebbe usata la sincronizzazione su un lock comune.