結城先生のデザパタ本マルチスレッド編 第2章のまとめ
複数のスレッドがインスタンスを共有しているが、インスタンスの状態は変化しない。
このときに、何も考えず Single Threaded Execution
パターンを使うとスループットが落ちてしまいます。
インスタンスが状態変化しないのであれば Single Threaded Execution
パターンを使う必要はありません。
その場合は意図しない状態変化を防ぐためにフィールドが変化しないようにする Immutable
パターンを用います。
不変性を保つのは大変なので、気をつけて実装する必要があります。またドキュメントにクラスが不変であることを明示する方が良いでしょう。
Read-Write Lock
パターンが使えますコード例はあまりにもつまらないので割愛
Java 標準ライブラリには mutable なクラスと immutable なクラスが対になっているものがある。
ウェブ界隈でエンジニアとして労働活動に励んでいる @gomi_ningen 個人のブログです