GitHub - g-berthiaume/effective_concurrency: Herb Sutter's Effective Concurrency Column Archive · GitHub
/" data-turbo-transient="true" />
Skip to content
Search or jump to...
Search code, repositories, users, issues, pull requests...
-->
Search
Clear
Search syntax tips
Provide feedback
--><br>We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
-->
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up
Appearance settings
Resetting focus
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
g-berthiaume
effective_concurrency
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star
main
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>3 Commits<br>3 Commits
src
src
README.md
README.md
View all files
Repository files navigation
Herb Sutter's Effective Concurrency Column Archive
If you search the web for articles about low-level concurrency, you're bound to come across references to Herb Sutter's Effective Concurrency column.<br>Published between 2007 and 2010 in Dr. Dobb's Journal, these articles focused on building a consistent mental model for reasoning about concurrency.
Now that Dr. Dobb's Journal has been closed, those articles have effectively been lost.
Even the Internet Archive's Wayback Machine seems to have only archived the first page of each article. While they may no longer be fully up to date, I believe they're still valuable.
This repo is my attempt to find and archive those articles.
List
Note that the quality varies, ranging from okay to great.
Currently missing (3/33): No 19, No 29 and No 30.
No<br>Name
EC #1<br>The Pillars of Concurrency
EC #2<br>How Much Scalability Do You Have or Need?
EC #3<br>Use Critical Sections (Preferably Locks) to Eliminate Races
EC #4<br>Apply Critical Sections Consistently
EC #5<br>Avoid Calling Unknown Code While Inside a Critical Section
EC #6<br>Use Lock Hierarchies to Avoid Deadlock
EC #7<br>Break Amdahl's Law!
EC #8<br>Going Superlinear
EC #9<br>Super Linearity and the Bigger Machine
EC #10<br>Interrupt Politely
EC #11<br>Maximize Locality, Minimize Contention
EC #12<br>Choose Concurrency-Friendly Data Structures
EC #13<br>The Many Faces of Deadlock
EC #14<br>Lock-Free Code: A False Sense of Security
EC #15<br>Writing Lock-Free Code: A Corrected Queue
EC #16<br>Writing a Generalized Concurrent Queue
EC #17<br>Understanding Parallel Performance
EC #18<br>Measuring Parallel Performance: Optimizing a Concurrent Queue
EC #19<br>volatile vs. volatile
EC #20<br>Sharing Is the Root of All Contention
EC #21<br>Use Threads Correctly = Isolation + Asynchronous Messages
EC #22<br>Use Thread Pools Correctly: Keep Tasks Short and Nonblocking
EC #23<br>Eliminate False Sharing
EC #24<br>Break Up and Interleave Work to Keep Threads Responsive
EC #25<br>The Power of "In Progress"
EC #26<br>Design for Manycore Systems
EC #27<br>Avoid Exposing Concurrency – Hide It Inside Synchronous Methods
EC #28<br>Prefer Structured Lifetimes - Local, Nested, Bounded, Deterministic
EC #29<br>Prefer Futures to Baked-In "Async APIs"
EC #30<br>Associate Mutexes with Data to Prevent Races
EC #31<br>Prefer Using Active Objects Instead of Naked Threads
EC #32<br>Prefer Using Futures or Callbacks to Communicate Asynchronous Results
EC #33<br>Know When to Use an Active Object Instead of a Mutex
Thanks
Thanks to Jacob Filipp for hosting the Dr. Dobbs DVD (most of the pdf comes from there).
Thanks to Miro Samek for No 31 and No 33.
Thanks to Pete Shearer for No 32.
Thanks to Herb Sutter for writing those articles.
Copyright
This is an archiving project. I do not own any of those articles.
If you are Herb Sutter and you want this repo to be modified or deleted, please reach out.
About
Herb Sutter's Effective Concurrency Column Archive
Resources
Readme
Uh oh!
There was an error while loading. Please reload this page.
Activity
Stars
stars
Watchers
watching
Forks
forks
Report repository
Releases
No releases published
Packages
Uh oh!
There was an error while loading. Please reload this page.
Contributors
Uh oh!
There was an error while loading. Please reload this page.
You can’t perform that action at this time.