ピコラボで有志により開かれている読書会の議事録を以下ご紹介します。ご興味ありましたら、「お問い合わせ」フォームで気軽にコメントなど頂けると幸いです(なお、議事録の議論内容等は各参加者個人の意見であり、会社の意見ではない点、ご了承ください)。

読書会情報

  • 書籍
    • 増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編
  • 発表対象
    • Chapter 8

質問・議論

練習問題 8-3 について

  • 質問: Thread-per-Message 版のコードでは並列度は制御していない?
  • 回答: していない
  • 意見: フェアな比較でないようにも思える。どういう比較がよいだろうか
  • 議論: putRequest が同期処理の中で Thread を生成するので遅い
  • 議論: Worker-Thread パターンでも requestQueue が一杯になると client が待たされる
  • 議論: worker 数と requestQueue の余裕の兼ね合い

Executor を使ったコード

  • 意見: Executor を使うコードの方が読みやすいように思える
  • (続): 元のコードは Queue の管理が分離されていない
  • 質問: BlockingQueue を使えば読みやすく書ける?
  • 回答: そう思う。初版では java.util.concurrent が無かったのではないか

練習問題について

  • 意見: Request はコマンドパターンなので関数オブジェクトで書ける
  • (続): コンストラクタで final フィールドを初期化してメソッドを呼ぶだけ
  • 議論: (Request.run と同等のメソッドを返す static メソッドを作って比較)