Semantics of Multithreaded Java
Semantics of Multithreaded Java
Files
Publication or External Link
Date
2001-05-10
Authors
Manson, Jeremy
Pugh, William
Advisor
Citation
DRUM DOI
Abstract
Java has integrated multithreading to a far greater extent than most
programming languages. It is also one of the only languages that
specifies and requires safety guarantees for improperly synchronized
programs. It turns out that understanding these issues is far more
subtle and difficult than was previously thought. The existing
specification makes guarantees that prohibit standard and proposed
compiler optimizations; it also omits guarantees that are necessary for
safe execution of much existing code. Some guarantees that are made
(e.g., type safety) raise tricky implementation issues when running
unsynchronized code on SMPs with weak memory models.
This paper reviews those issues. It proposes a new semantics for Java
that allows for aggressive compiler optimization and addresses the
safety and multithreading issues.
(Cross-referenced as UMIACS-TR-2001-09)