5、AtomicXXX

AtomicXXX 都是
CAS(无锁优化 自旋 乐观锁)
Compare And Set
Compare And Swap


cas(V,Expected,NewValue)
    -if V == E
    V  = New
    otherwise try again or fail
    -CPU原语支持
先获取一下


ABA问题:   符合Expected
    -加version
    -A 1.0
    -B 2.0
    -A 3.0
    -cas(version)
版本号   检查版本号
如果基础类型 -无所谓   -引用类型  你的女朋友跟你复合,中间经历了别的女人

== Unsafe ==c c++的指针  单例模式
直接操作java虚拟机的内存
c ->malloc free c++ -> new delete
 

public class T01_AtomicInteger {
	/*volatile*///int count = 0;
	//原子操作
	AtomicInteger count = new AtomicInteger();
	
	/*synchronized*/void m() {
		for(int i =0; i < 10000; i++)
			//if count.get() < 1000
			count.incrementAndGet();
	}
	public static void main(String[] args) {
		T01_AtomicInteger t = new T01_AtomicInteger();
		List<Thread> threads = new ArrayList<Thread>();
		
		for(int i=0;i<10;i++) {
			threads.add(new Thread(t::m,"thread-" + i));
		}
		threads.forEach((o) -> o.start());
		
		threads.forEach((o) ->{
			try {
				o.join();
			}catch (InterruptedException e) {
				e.printStackTrace();
			}
		});
		System.out.println(t.count);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值