Java 线程同步之原子变量

2014-11-23 23:41:51 · 作者: · 浏览: 17

为了完成线程同步,我们将使用原子变量来实现。AtomicInteger类存在于java.util.concurrent.atomic中,


该类表示支持原子操作的整数,采用getAndIncrement方法以原子方法将当前的值递加。


相关阅读:


代码如下


import java.util.concurrent.atomic.AtomicInteger;


//使用原子变量实现线程同步
public class AtomiclntergerDemo implements Runnable{

// 定义原子变量
private AtomicInteger number = new AtomicInteger(0);
private static final int nCount = 5;
@Override
public void run() {
// TODO Auto-generated method stub
for (int i = 0; i < nCount; i++) {
try {
Thread.sleep(1);
} catch (InterruptedException e) {
// TODO: handle exception
e.printStackTrace();
}
// getAndIncrement变量以原子的方式递加
System.out.println(Thread.currentThread().getName() + ":" + number.getAndIncrement());
}

}


public static void main(String []args){
AtomiclntergerDemo run = new AtomiclntergerDemo();
// 创建两个线程
Thread thread1 = new Thread(run);
Thread thread2 = new Thread(run);

thread1.start();
thread2.start();

}
}


运行结果如下: