The Java memory model described in Chapter 17 of the Java Language Specification gives constraints on how threads interact through memory. This chapter is hard to interpret and poorly understood; it imposes constraints that prohibit common compiler optimizations and are expensive to implement on existing hardware. Most JVMs violate the constraints of the existing Java memory model; conforming to the existing specification would impose significant performance penalties.
In addition, programming idioms used by some programmers and used within Sun's Java Development Kit is not guaranteed to be valid according to the existing Java memory model.Furthermore, implementing Java on a shared-memory multiprocessor that implements a weakmemory model poses some implementation challenges not previously considered. Copyright © 2000 John Wiley & Sons, Ltd.
[1]
M. Wegman,et al.
Global value numbers and redundant computations
,
1988,
POPL '88.
[2]
Bowen Alpern,et al.
Detecting equality of variables in programs
,
1988,
POPL '88.
[3]
Guy L. Steele,et al.
The Java Language Specification
,
1996
.
[4]
Rida A. Bazzi,et al.
The power of processor consistency
,
1993,
SPAA '93.
[5]
Nigel Warren,et al.
Java in practice : design styles and idioms for effective Java
,
1999
.
[6]
Martin Wirsing,et al.
Formal Syntax and Semantics of Java
,
1999
.
[7]
Martin Wirsing,et al.
From Sequential to Multi-Threaded Java: An Event-Based Operational Semantics
,
1997,
AMAST.