synchronized已经能知足咱们平常的线程安全需求了,java
- synchronized是基于代码阻塞的机制,
- 也就是当某个线程占用资源时,其余线程是没法进入的,
- 若是这个线程出现问题的时候,
- 出现大量线程阻塞,
- CPU就会耗费大量资源来处理阻塞在外的这些线程,
- 可是CPU的任务本不应如此,
- 对于这样的简单操做反而显得有些笨重,
- 因此就有了CAS
synchronized是采用的是悲观锁策略,数组
https://www.jianshu.com/p/84c75074fa03安全
在J.U.C下的atomic包提供了一系列的操做简单,性能
- 性能高效,并能保证线程安全的类去更新基本类型变量,数组元素,引用类型以及更新对象中的字段类型。
- atomic包下的这些类都是采用的是乐观锁策略去原子更新数据,