【プログラマーの方々へ】

ageで失礼します。Threadを使う並列処理プログラミングを上手に行う方法を
ご教示ください。

javaのサンプルファイルを見て勉強しますと、「あ、こんなところで
wait();」、「ここでsynchronizedを使うのはなぜ」、「notify();を
わざわざメソッドの最後に書き込むのはどうして」、などの疑問が
噴出します。

C.A.R.ホアの並列処理の教科書を読んで勉強をしたことがあるのですが、
理論と実践は随分違うなと感じます。

実際に現場で並列処理のプログラミングをされていらっしゃる方々、
どうかご教示ください。お願い申し上げます。