Standing at the view point of JVM, which actions
do getfield/putfield correspond to, use/assign or load/store?
Java specification (Chapter 17) doesn't state that explicitly. In Alex
Gontmakher and Assaf Schuster's paper "Java consistency: nonoperational
characterizations for Java memory behavior", getfield/putfield were
interpreted to load/store. In Puph's paper "Fixing the Java
Memory Model", getfield/putfield were interpreted to use/assign.
However, Puph also supports that Java requires coherence.
These two interpretation seem contradictive to me. If getfield/putfield
correspond to load/store, according to Java specification, read/write is
required (in this context, coherence is easily to understand); if
getfield/putfield correspond to use/assign, read/write is optional! The
memory mode is rather weak.
Another question also confused me: what is thread working memory? If
getfield/putfield correspond to load/store, thread stack can be considered
as thread working memory. if getfield/putfield correspond to use/assign,
thread stack is a part of thread engine.
Fang Wei Jian
JavaMemoryModel mailing list - http://www.cs.umd.edu/~pugh/java/memoryModel
This archive was generated by hypermail 2b29 : Thu Oct 13 2005 - 07:00:30 EDT