集合框架:
https://www.cnblogs.com/java1024/archive/2004/01/13/13462044.html
https://www.jianshu.com/p/d0b37b927c48
多线程:
https://www.cnblogs.com/xiaowangbangzhu/p/10443289.html
https://www.cnblogs.com/java1024/p/13390538.html
三、CAS 与 Synchronized 的对比:
1.synchronized 是悲观的,它假设更新都是可能冲突的,所以要先获取锁,得到锁才更新,它是阻塞式算法,得不到锁就进入锁池等待。
CAS 是乐观的,它假设冲突比较少,但使用CAS 更新,进行冲突检测,如果确实冲突就继续尝试直到成功,它是非阻塞式算法,有更新冲突就重试。