親と子が居て、

親
 子に仕事を頼みます。
 子が結果を返すまで待機します。

子
 頼まれた仕事をします。
 結果を親に報告します。

といった同期処理が必要なんですけどこういうのってBlockingQueueを使うのが一般的なんでしょうか?
wait/notifyを使うと、親がwaitする前に子がnotifyしてしまって空振りみたいになってちゃんと動かない場合があります。

でも同期のためだけに仕事を頼む度に要素数1のBlockingQueueを生成することに何か違和感を感じます。