JAVA: MEMORY CONSISTENCY AND PROCESS COORDINATION
Date
1998-04-01
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
In Java, some memory updates are necessarily visible to some threads but never
to others. A definition of Java memory consistency must take this fact into
consideration to capture the semantics of non-terminating systems, such as a
Java operating system. This paper presents a programmer-centered formal
definition of Java memory behavior that captures those semantics.
Our definition is employed to prove that it is impossible to provide
fundamental process coordination in Java, such as critical sections and
producer/consumer coordination, without the use of the synchronized and
volatile constructs. However, we show that a weaker form of synchronization
suffices to solve some of these problems in Java.
Description
Keywords
Computer Science