View Single Post
Old 06-07-2011, 10:14   #2
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da Satshas Guarda i messaggi
Ad esempio ho un'oggetto condiviso in lettura/scrittura oppurtunamente sincronizzata tra più thread:

OggettoA A = new OggettoA();

fare:

OggettoA B = A;

o

FaiQualcosa(A);

sia thred-safe o abbiano bisogno anchessi di sincronizzazzione?
Se le letture/scritture sono effettivamente thread-safe rispetto al memory model del linguaggio e quindi entrano in gioco gli effetti delle regole "happens-before" previste per taluni operazioni, allora in teoria non occorre "sincronizzare" (immagino intendi acquisire un lock in via esclusiva).
Ma per essere sicuri bisognerebbe esaminare il codice.

Se ti dovesse servire documentazione di riferimento, ti posto tre risorse utili:
1) trail sulla concurerncy nei Java Tutorials
2) javadoc del package java.util.concurrent (la parete titolata "Memory Consistency Properties")
3) capitolo 17 del Java Language Specifications (Threads and Locks)
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso