synchronized已經能知足咱們平常的線程安全需求了,java
- synchronized是基於代碼阻塞的機制,
- 也就是當某個線程佔用資源時,其餘線程是沒法進入的,
- 若是這個線程出現問題的時候,
- 出現大量線程阻塞,
- CPU就會耗費大量資源來處理阻塞在外的這些線程,
- 可是CPU的任務本不應如此,
- 對於這樣的簡單操做反而顯得有些笨重,
- 因此就有了CAS
synchronized是採用的是悲觀鎖策略,數組
https://www.jianshu.com/p/84c75074fa03安全
在J.U.C下的atomic包提供了一系列的操做簡單,性能
- 性能高效,並能保證線程安全的類去更新基本類型變量,數組元素,引用類型以及更新對象中的字段類型。
- atomic包下的這些類都是採用的是樂觀鎖策略去原子更新數據,