Java 线程同步之原子变量

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

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

代码如下:

package com.android.test;

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

运行结果如下:

Java 线程同步之原子变量_第1张图片



你可能感兴趣的:(线程同步,原子变量的使用)