线程:volatile关键字

  关键字volatile的作用是强制从公共堆栈中取得变量的值,而不是从线程私有数据栈中取得变量的值。

  使用volatile关键字增加了实例变量在多个线程之间的可见性。但volatile关键字最致命的缺点是不支持原子性。

  volatile解决的是变量在多个线程之间的可见性,而synchronized关键字解决的是多个线程之间访问资源的同步性。

使用原子类进行i++操作

import java.util.concurrent.atomic.AtomicInteger;

public class AtomicIntegerThread extends Thread{
	
	// 原子类
	private AtomicInteger count = new AtomicInteger(0);
	
	@Override
	public void run(){
		for(int i=0; i<10000; i++){
			System.out.println(count.incrementAndGet());
		}
	}
}



public class Run {
	public static void main(String[] args){
		AtomicIntegerThread countService = new AtomicIntegerThread();
		Thread t1 = new Thread(countService);
		t1.start();
		
		Thread t2 = new Thread(countService);
		t2.start();
		
		Thread t3 = new Thread(countService);
		t3.start();
		
		Thread t4 = new Thread(countService);
		t4.start();
		
		Thread t5 = new Thread(countService);
		t5.start();
	}
}
发布了557 篇原创文章 · 获赞 40 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/m0_37564426/article/details/103344727
今日推荐