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

Posted yadongliang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 语言特性——JUC(Java 并发工具包)相关的知识,希望对你有一定的参考价值。

引言

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 并发工具包)的主要内容,如果未能解决你的问题,请参考以下文章

并发与多线程——常用工具类(JUC)

Java并发工具合集JUC大爆发!!!

Java基础学习总结(193)—— JUC 常用并发工具类总结

JUC并发编程 -- JUC介绍 & 线程/进程 & 并发/并行 & Java代码查看CPU的核数

java并发编程工具类JUC第六篇:SynchronousQueue同步队列

JUC 常用 4 大并发工具类