Access the full text.
Sign up today, get DeepDyve free for 14 days.
References for this paper are not available at this time. We will be adding them shortly, thank you for your patience.
COMPUTER ARCHITECTURE You Don t Know Jack about Shared Variables or Memory Models Data races are evil Sarita V. Adve, University of Illinois at Urbana-Champaign Hans-J. Boehm, HP Laboratories A Google search for Threads are evil generates 18,000 hits, but threads evil or not are ubiquitous. Almost all of the processes running on a modern Windows PC use them. Software threads are typically how programmers get machines with multiple cores to work together to solve problems faster. And often they are what allow user interfaces to remain responsive while the application performs a background calculation. Threads are multiple programs running at the same time but sharing variables. Typically, every thread can access all of the application s memory. Shared variables are either the core strength of threads or the root of their evil, depending on your perspective. They allow threads to communicate easily and quickly, but they also make it possible for threads to get in each other s way. Although shared variables are at the core of most programs, even experts are often confused about the rules for using them. Consider the following simple example. INCREMENTING A COUNTER To implement a function incr that increments a
Queue – Association for Computing Machinery
Published: Dec 1, 2011
Read and print from thousands of top scholarly journals.
Already have an account? Log in
Bookmark this article. You can see your Bookmarks on your DeepDyve Library.
To save an article, log in first, or sign up for a DeepDyve account if you don’t already have one.
Copy and paste the desired citation format or use the link below to download a file formatted for EndNote
Access the full text.
Sign up today, get DeepDyve free for 14 days.
All DeepDyve websites use cookies to improve your online experience. They were placed on your computer when you launched this website. You can change your cookie settings through your browser.