技術開発日記

技術やら日々思ったことを綴ってます。

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();
	}
}