Atomic包总结

synchronized已经能知足咱们平常的线程安全需求了,java

  • synchronized是基于代码阻塞的机制,
    • 也就是当某个线程占用资源时,其余线程是没法进入的,
  • 若是这个线程出现问题的时候,
    • 出现大量线程阻塞,
    • CPU就会耗费大量资源来处理阻塞在外的这些线程,
  • 可是CPU的任务本不应如此,
    • 还很可能出现死锁等问题,
  • 对于这样的简单操做反而显得有些笨重,
    • 因此应该有更合适更高效的方法来处理这样的问题。
  • 因此就有了CAS

synchronized是采用的是悲观锁策略,数组

  • 并非特别高效的一种解决方案

https://www.jianshu.com/p/84c75074fa03安全

在J.U.C下的atomic包提供了一系列的操做简单,性能

  • 性能高效,并能保证线程安全的类去更新基本类型变量,数组元素,引用类型以及更新对象中的字段类型。
  • atomic包下的这些类都是采用的是乐观锁策略去原子更新数据,
    • 在java中则是使用CAS操做具体实现。
相关文章
相关标签/搜索