当前位置:网站首页 > Java教程 > 正文

java原子组件教程



廖雪峰
资深软件开发工程师,业余马拉松选手。

Java的包除了提供底层锁、并发集合外,还提供了一组原子操作的封装类,它们位于包。

我们以为例,它提供的主要操作有:

  • 增加值并返回新值:
  • 加1后返回新值:
  • 获取当前值:
  • 用CAS方式设置:

Atomic类是通过无锁(lock-free)的方式实现的线程安全(thread-safe)访问。它的主要原理是利用了CAS:Compare and Set。

如果我们自己通过CAS编写,它大概长这样:

CAS是指,在这个操作中,如果的当前值是,那么就更新为,返回。如果的当前值不是,就什么也不干,返回。通过CAS操作并配合循环,即使其他线程修改了的值,最终的结果也是正确的。

我们利用可以编写一个多线程安全的全局唯一ID生成器:

通常情况下,我们并不需要直接用循环调用实现复杂的并发操作,而是用这样的封装好的方法,因此,使用起来非常简单。

在高度竞争的情况下,还可以使用Java 8提供的和。

使用提供的原子操作可以简化多线程编程:

  • 原子操作实现了无锁的线程安全;
  • 适用于计数器,累加器等。

版权声明


相关文章:

  • java入门教程电子书2024-11-28 13:26:00
  • java 什么教程好2024-11-28 13:26:00
  • java光影添加教程2024-11-28 13:26:00
  • java graphics 教程2024-11-28 13:26:00
  • java语法教程2024-11-28 13:26:00
  • java日志使用教程2024-11-28 13:26:00
  • java 中间件教程2024-11-28 13:26:00
  • java声明教程2024-11-28 13:26:00
  • java记账系统教程2024-11-28 13:26:00
  • java全套教程48集2024-11-28 13:26:00