1) Foundations of Multithreaded, Parallel, and Distributed Programming by Gregory Andrews - https://www2.cs.arizona.edu/~greg/mpdbook/ This will give you a solid foundation in all aspects of concurrency.
I read the “The Art of Multiprocessor Programming” and I don’t recommend it. It is very theoretical. There is no mention of practical performance considerations on real hardware.
Large parts of the theory focus on lock-free and wait-free data structures. Which, while interesting, are not necessary for beginners.
Large parts of the theory focus on lock-free and wait-free data structures. Which, while interesting, are not necessary for beginners.