マルチスレッドとアトミック

微妙なつっこみがありましたので。。。
http://d.hatena.ne.jp/khi/20040128#p1


スレッドセーフにするには、
synchronized か volatile する必要がありますね。


Java並列プログラミングTips 原子性(atomicity)/原子的な(atomic)
http://www.netgene.co.jp/java/concurrentTips.html#atomic

プリミティブ型へのアクセスがatomicだからと言って,必ずしも synchronizedメソッド/文が不要とは限らない.代表的な例としては "i++"の様なものがある.排他制御なしに,複数のスレッドでこれを同時に実行すると,「百回インクリメントしたはずなのに1しか増えていない」ということも起こりうる."


ただし、家で使ってるような1CPUのしょぼいPCの場合、
intに対する「百回インクリメントしたはずなのに1しか増えていない」
現象はほぼ再現できないかもしれません。