レースコンディション=競合状態 個人的な見解ですが、学術分野以外ではあまり使われない言葉です。意味も結構広いですし。 今回はこのレースコンディション、スレッドセーフがテーマです。実際にスレッドセーフでないメソッドを利用して問題が発生する様子を見てみます。 スレッドセーフ Javaでスレッドセーフと言えばAPIドキュメントを見ているとよく目に留まるアレが思いつきます。例えばArrayListのJavadocに以下の記述があります。 Note that this implementation is not synchronized. この実装は同期化されません。 この文に続く説明を見ると分かりますが、複数スレッドでアクセスして、1スレッドでも変更を伴う操作をするとまずいようです。これはスレッドセーフではありません。逆に複数スレッドを意識して正しく設計・実装されたものはスレッドセーフです。例えば