Semantics of Multithreaded Java

Loading...
Thumbnail Image

Files

CS-TR-4215.ps (285.71 KB)
No. of downloads: 273
CS-TR-4215.pdf (289.88 KB)
No. of downloads: 568

Publication or External Link

Date

2001-05-10

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)

Notes

Rights