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 并发工具包)的主要内容,如果未能解决你的问题,请参考以下文章
Java基础学习总结(193)—— JUC 常用并发工具类总结
JUC并发编程 -- JUC介绍 & 线程/进程 & 并发/并行 & Java代码查看CPU的核数