Comment by mgaunard
8 hours ago
tl;dr mutexes are evil because they don't compose, STM is the solution because it does compose, otherwise just avoid shared state, or even state entirely.
Not anything that's not already covered in any undergraduate CS course.
I've never taken an undergraduate CS course so I'm happy to have read this!
Which CS course did you go to?
You made me check the programme of many university courses.
Most parallel programming courses are at Masters level and require specialization, but those are much more advanced (sorting networks, distributed computing on supercomputers and GPU, consensus algorithms, parallelization of linear solvers...)
There are undergraduate courses that cover simple things like multithreading patterns in mainstream languages, but it seems they are only available if you go to an education institution with both a practical mindset and a firm grip of the fundamentals, which is unfortunately quite rare, as most institutions tend to specialize in one or the other.
During my undergrad this stuff was heavily covered in my Intro to Operating Systems class. But that was 20 years ago, may be different now.