码迷,mamicode.com
首页 > 编程语言 > 详细

Java 语言特性【一】——JUC(Java 并发工具包)

时间:2020-02-18 13:10:42      阅读:26      评论:0      收藏:0      [点我收藏+]

标签:bsp   int   场景   很多   integer   pac   atomic   jdk   多线程   

引言

JUC即java.util.concurrent,是java提供的用于多线程处理的工具类库。

技术图片

 

打开jdk包,JUC代码就在rt.jar包中,concurrent下有atomic和locks两个package,并且还有concurrentXXX、Executor、Future、Queue等。

AtomicXXX

atomic即原子类,如图:

技术图片

 

其中,AtomicBoolean,AtomicInteger,AtomicLong,DoubleAccumulator,DoubleAdder,LongAccumulator,LongAdder 都是基本类型的原子类,更适合高并发场景。

以 AtomicLong 和 LongAdder 来说,AtomicLong 是通过 unsafe 类实现的,基于 CAS。unsafe 类是底层工具类,JUC 中很多类的底层都使用到了 unsafe 包中的功能。unsafe 类提供了类似 C 的指针操作,提供 CAS 等功能。并且 unsafe 类中的所有方法都是 native 修饰的。在说 AtomicXXX 之前,先补一下关于 CAS的相关知识,这里就引出了线程同步与互斥的内容。

 

Java 语言特性【一】——JUC(Java 并发工具包)

标签:bsp   int   场景   很多   integer   pac   atomic   jdk   多线程   

原文地址:https://www.cnblogs.com/yadongliang/p/12325641.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!