使用java.util.atomic提供的原子操作可以简化多线程编程
- AtomicInterger/AtomicLong/AutomicIntergerArray等
- 原子操作实现了无锁的线程安全
- 适用于计数器,累加器等
class Counter3{
private AtomicInteger value =new AtomicInteger(0);
public int add(int m){
return this.value.addAndGet(m);
}
public int dec(int m){
return this.value.addAndGet(-m);
}
public int get(){
return this.value.get();
}
}
public class ConcurrentAtomic {
final static int loop=100;
public static void main(String[] args) throws Exception{
Counter counter=new Counter();
Thread t1=new Thread(){public void run(){
for (int i = 0; i < loop; i++) {
counter.add(i);
}
}};
Thread t2=new Thread(){public void run(){
for (int i = 0; i < loop; i++) {
counter.dec(i);
}
}};
t1.start();
t2.start();
t1.join();
t2.join();
System.out.println(counter.get());
System.out.println("main end");
}
}