死磕高并发与网络编程学习笔记及总结(三)

第三阶段

1、原子类型详细讲解
AtomicInteger(compareAndSet  典型的cas对比算法)
释放锁的时候要考虑到多线程的情况,只有当前线程才可以关闭当前线程

1、可见性
2、有顺性
3、原子性

1、volatile修饰的变量,能保证前俩者
2、CAS算法,也就是CPU级别的同步指令,相当于乐观锁,它可以探测到其他线程对共享数据的变化情况

atomicInteger++
incrementAndGet()

for(;;){
    int current = get();
    int next = current +1;
    if(compareAndSet(current,next))
        return next;
}

最快失败策略

CAS轻量级锁,带来的一个严重问题,ABA问题

T1     T2
A    A->B->A

链表,栈,后进先出


2、并发包工具
CountDwonLatch


3、Executors框架详细介绍

4、并发集合

猜你喜欢

转载自blog.csdn.net/weixin_39650971/article/details/94637750