Home
Schedule
Abstract Template
Masters Attendance
Center
Home
Courses
People
Projects
Page
Edit Page
Rename Page
Attach File
Printable
Wiki Source
More ...
Web
Recent Changes
Notify Service
News
Page Index
Search
More ...
Wiki
About TWiki
Text Formatting
Registration
Change Password
Reset Password
Users
Groups
Log In
or
Register
The Evolution Of The Java Memory Model
Stc
Date: 2005-11-17 Time: 11:45 Room: BBL room 471 ----+++ Speaker: [[Students.LeeProvoost][Lee Provoost]] ----+++ Title: The evolution of the Java memory model ----+++ Abstract The Java Memory Model specifies the legal behaviors for a multithreaded Java program. Although it influences every Java programmer, unfortunately for most people it is an unknown concept. Even the targeted audience (virtual machine, compiler and processor implementers) does not have a uniform understanding of the Java Memory Model, because the original model is hard to interpret. This leads for instance to virtual machines that violate the constraints of the model, resulting in unexpected behavior of Java code. The big problem when you start reading papers and articles related to the Java Memory Model is that you should really pay attention to the timeframe when they were written. A good example is the confusion about the semantics of the volatile keyword. This paper tries to give an evolution of the Java Memory Model, starting from the original Chapter 17 from the Java Language Specification of Java 1.0 to the implementation of the JSR-133 specification in the latest Java 5. To clearly illustrate the problems and give a better understanding of the Java Memory Model, a big part of this paper will deal with the famous lazy initialization/double-checked locking programming idiom.