ScalaのAtomic性

はじめに

Scalaにある+=演算子、これってAtomicじゃないの?という疑問があって調べてみたの巻。

やりたいこととしては、parでスレッド分けてmutableな変数に+=でアクセスしたらどーなるのよ、という話。

サンプルコード

object Main extends App {
  var counter = 0
  (1 to 1000000).par.foreach{ _ => counter += 1 }
  println(counter)
}

結果は994592とか出て、つまりAtomicでないという結論。

そのた

どうせJavaも同じ仕様にきまってる。(適当