- Package
java.util.concurrent.atomic
http://developer.android.com/reference/java/util/concurrent/atomic/package-summary.html - Classes
java.util.concurrent.atomic provides to atomic access for Boolean, Integer, Long, Reference, their array and reflection-based classes (AtomicXXXFieldUpdater, it is used to enable atomic updates to designated volatile XXX fields of designated classes). - Sample
- AtomicIntegerFieldUpdater
import java.util.concurrent.atomic.*;
class Container {
public volatile int no;
}
class Task extends Thread {
private AtomicIntegerFieldUpdaterupdater =
AtomicIntegerFieldUpdater.newUpdater(Container.class, "no");
private Container c;
public Task(Container c) {
this.c = c;
}
@Override
public void run() {
System.out.println(updater.getAndIncrement(c));
System.out.println(updater.getAndIncrement(c));
}
}
public class UpdaterUsage {
public static void main (String [] args) {
Container c = new Container();
Task t1 = new Task(c);
Task t2 = new Task(c);
t1.start();
t2.start();
}
} - xxx
- xx