高并发相关(一)

1. volatile   :   a.不保证原子性 b.可见性  c.禁止指定重排

2.JMM : java内存模型

高并发相关(一)

3.单例模式: DCL(双端检索机制)double check lock  

            高并发下可以 volatile+DCL 实现单列模式

4.自旋锁 /CAS(比较and交换)  底层 unsafe 可直接调用操作系统(native)

         CAS的缺点:a.循环时间长,cpu开销大  b.只保证一个原子变量   c.引来aba 问题(使用AtomicReference原子引用类型)

5.atomicInteger 原子/       cas调用的 getAndIncrement (在原语中执行,必须连续,不允许被打断)

6.ArrayList,HashSet,HashMap都是线程不安全,多线程下会出现并发修改异常,concurrentModifctionException,要实现线程安全,用collections.synchronizedList(),或者 CopyOnWriteArrayList(写时复制)

7.CountDownLatch(倒计时减法),cyclicBarrier凑齐7龙珠(加法),Semaphore信号量(抢车位)