JavaMemoryModel: Do getfield/putfield correspond to use/assign or load/store?

From: Fang Wei Jian (
Date: Tue Mar 27 2001 - 01:03:04 EST

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.

Best Regards,

Fang Wei Jian

JavaMemoryModel mailing list -

This archive was generated by hypermail 2b29 : Thu Oct 13 2005 - 07:00:30 EDT