多线程

J.U.C并发包简介

2021-09-17  本文已影响0人  Duanty

J.U.C并发包简介

J.U.C并发包, 即java.util.concurrent包, 是JDK的核心工具包, 是JDK1.5之后, 由 Doug Lea实现 并引入.
整个J.U.C包按照功能可划分如下:

J.U.C_locks 锁框架

早期的JDK版本中, 仅仅提供了synchronizd、wait、notify等等比较底层的多线程同步工具, 开发人员如果需要开发复杂的多线程应用, 通常需要基于JDK提供的这些基础工具进行封装, 开发自己的工具类. JDK1.5+后, Doug Lea根据一系列常见的多线程设计模式, 设计了JUC并发包, 其中java.util.concurrent.locks包下提供了一系列基础的锁工具, 用以对synchronizd、wait、notify等进行补充、增强.

本部分相关文章:

J.U.C_atomic 原子类框架

早期的JDK版本中, 如果要并发的对Integer、Long、Double之类的Java原始类型或引用类型进行操作, 一般都需要通过锁来控制并发, 以防数据不一致.
从JDK1.5开始, 引入了java.util.concurrent.atomic工具包, 该包提供了许多Java原始/引用类型的映射类, 如AtomicInteger、AtomicLong、AtomicBoolean, 这些类可以通过一种“无锁算法”, 线程安全的操作Integer、Long、Boolean等原始类型.
所谓“无锁算法”, 其实底层就是通过Unsafe类实现的一种比较并交换的算法, 大致的结构如下: boolean compareAndSet(expectedValue, updateValue); 当希望修改的值与expectedValue相同时, 则尝试将值更新为updateValue, 更新成功返回true, 否则返回false.

本部分相关文章:

J.U.C_sync 同步器框架

这里的J.U.C_sync同步器框架, 是指java.util.concurrent包下一些辅助同步器类, 每个类都有自己适合的使用场景:

本部分相关文章:

J.U.C_collections 集合框架

这里的J.U.C_collections集合框架, 是指java.util.concurrent包下的一些同步集合类, 按类型划分可以分为: 符号表队列Set集合列表 四大类, 每个类都有自己适合的使用场景.

本部分相关文章:

J.U.C_executors 执行器框架

executors框架是整个J.U.C包中类/接口关系最复杂的框架, executors其实可以划分为3大块, 每一块的核心都是基于Executor这个接口.

本部分相关文章:

本文借鉴自segmentfault并发专栏

上一篇 下一篇

猜你喜欢

热点阅读