Ответ 1
Это также хорошая серия статей, посвященных теме:
http://www.baptiste-wicht.com/2010/05/java-concurrency-part-1-threads/
http://www.baptiste-wicht.com/2010/05/java-concurrency-part-2-manipulate-threads/
http://www.baptiste-wicht.com/2010/08/java-concurrrency-synchronization-locks/
http://www.baptiste-wicht.com/2010/08/java-concurrency-part-4-semaphores/
http://www.baptiste-wicht.com/2010/09/java-concurrency-part-5-monitors-locks-and-conditions/
http://www.baptiste-wicht.com/2010/09/java-concurrency-atomic-variables/
http://www.baptiste-wicht.com/2010/09/java-concurrency-part-7-executors-and-thread-pools/