An excellent book that I used for my Parallel Programming course in my undergrad. While looking up Nir Shavit (back then), I came across a "Summer School on Practice and Theory of Concurrent Computing (2017)" [1] which had notable people give talks about interesting & fundamental topics related to Parallel Computing such as "Wait-free computing 'for dummies'", "Lock-free concurrent data structures", and "Locking, from traditional to modern" (taught by Nir Shavit). [2] is a link to a YouTube playlist containing all the videos from that Summer School. I highly recommend it.
[1] https://neerc.ifmo.ru/sptcc/courses.html
[2] https://www.youtube.com/playlist?list=PLVe-2wcL84b9G9o7KPubp...
I think for someone who has no exposure to it before, its quite dense (perhaps long wasn't the best choice of wording)
Also, I've been meaning to read The Art of Multiprocessor Programming. I've heard great things about it!
There's also an "advanced" playlist and there're plenty of other interesting lectures about the memory.
Is it really? Sorry, but this is barely an introduction.
Some additional links to important documentation:
https://en.cppreference.com/w/cpp/language/memory_model
https://en.cppreference.com/w/cpp/atomic/memory_order
https://research.swtch.com/mm
Effective Concurrency series by Sutter: https://herbsutter.com/2009/07/15/effective-concurrency/
The Art of Multiprocessor Programming by Maurice Herlihy, Nir Shavit et al. ISBN: 978-0124159501