AtomicInteger 和AtomicLong,线程安全计数类,通过CAS实现

    悲观锁:认为每次操作都会修改数据,所以每次操作都会锁定数据,synchronize,reentranLock都是悲观锁实现
    乐观锁:认为数据并发发生冲突的概率较小,每次操作不会锁定数据,在数据进行提交的时候,会判断在此期间是否被其他线程修改了,如果修改了就重试,没修改就提交。通过CAS实现,AtomicInteger就是乐观锁实现,里面的CAS操作是UnSafe包下的,都是本地方法

    自旋和阻塞:
    线程拿不到锁时候的两种操作,自旋是不放弃CPU,空转。阻塞是放弃CPU,进入阻塞状态,等待被唤醒。AtomicInteger就是自旋

    AtomicBoolean和AtomicReference
    应用于布尔值和对象的线程安全计数

    AtomicStampedReference和AtomicMarkableReference
    AtomicStampedReference解决CAS中的ABA问题,通过引入版本号机制来解决
    AtomicMarkableReference解决布尔值ABA问题,不能解决,只能降低ABA发生概率