AtomicInteger
JDK1.5からスレッドセーフなクラスが色々と追加されているみたい。
中でも、AtomicInteger とかは便利で使い所が多いかも。
下はスレッドセーフな値を更新するサンプル
今までの実装
class Atomic { private int count = 0; public synchronized void add(int n) { count += n; } public int get() { return count; } }
AtomicIntegerを使った実装
(こっちの方がパフォーマンスが断然いい。)
class Atomic { private AtomicInteger count = new AtomicInteger(0); public void add(int n) { count.addAndGet(n); } public int get() { return count.get(); } }