●スレッドセーフ スレッドセーフとは、複数のスレッドが実行されるプログラムにおいて、データの整合性が保障されていることをいう。この場合のデータとは、クラスのフィールドの状態を指す。状態を持たないフィールド( final属性の基本型、final属性のイミュータブルオブジェクト )は更新されないので整合性を気にする必要はない。 staticメソッドとスレッドセーフかどうかは関係ない。 あるメソッドがstaticか非staticかはそのメソッドがスレッドセーフであるかどうかの判断基準にはならない。それらは互いに独立した概念である。 あるメソッドがスレッドセーフかどうかの基準は、以下の基準によっている。 #そのメソッド内で、あるクラスのフィールドの状態を更新しているかどうか もし、そのメソッド内で上記の操作が行われている場合、synchronized 修飾子をつけるべきである。こうすることで、その
![スレッドセーフとデッドロック - Javaの日々](https://cdn-ak-scissors.b.st-hatena.com/image/square/2279a66233541e3a7ec0df7193bb8496db5c4f75/height=288;version=1;width=512/http%3A%2F%2Fjava-etc.cocolog-nifty.com%2F.shared-pleasy%2Fnifty_managed%2Fimages%2Fweb%2Fogp%2Fdefault.png)