Comment by rramadass
I am not the person you asked the question of, but you might find the following useful (in addition to the ones mentioned in my other comments);
Foundations of Multithreaded, Parallel, and Distributed Programming by Gregory Andrews - An old classic but still very good explanations of concurrent algorithmic concepts.
Parallel Programming: Concepts and Practice by Bertil Schmidt et.al. - A relatively recent book with comprehensive coverage.
Good suggestions. For everyday devs starting with the basics, I'd suggest Grokking Concurrency.