Keyword(s): Threads. shared variables, data races, C++, Java, Pthreads
Abstract: Mainstream programming languages such as Java, C, and C++ either already support (Java, C#), or will soon support (C and C++), multiple threads of execution sharing memory. Even for those languages whose specifications do not yet officially support threads, most implementations have done so for many years, and many applications take advantage of that support. The facility is widely used both to support responsive applications and to take better advantage of now dominant multicore processors. In spite of pervasive threads use, the ground rules for writing multithreaded applications have been surprisingly unclear. Even experts have been known to disagree about the basic usage rules for shared variables. Recent work by standards committees has largely resolved these issues. This is an attempt to explain the results to a broad audience, especially including potential users. It is not intended as a research paper, though we refer to some of the underlying research papers.
No page numbers available Pages
External Posting Date: October 6, 2009 [Fulltext]. Approved for External Publication
Internal Posting Date: October 6, 2009 [Fulltext]