What are good resources for self teaching parallel/concurrent/multithreaded programming techniques?
IMHO the best way to learn parallelism/concurrency is to learn how it is done in FP languages and then look for the ways to do the same in {your beloved one}. My own list:


Communicating sequential processes and Communicating Sequential Processes (CSP), by C. A. R. Hoare (PDF Version)
Erlang and books on Erlang/OTP
Parallel and Concurrent Programming in Haskell
Structured Parallel Programming Book