J.U.C即java.util.concurrent包,为我们提供了很多高性能的并发类,可以说是java并发的核心。
Concurrent包下所有类底层都是依靠CAS操作来实现,而sun.misc.Unsafe为我们提供了一系列的CAS操作。
AQS框架是J.U.C中实现锁及同步机制的基础,其底层是通过调用 LockSupport .unpark()和 LockSupport .park()实现线程的阻塞和唤醒。
J.U.C的整个框架分为5个部分:tools、locks、collections、executor和atomic。
- atomic:该部分主要是一些原子变量类,仅依赖于Unsafe,并且被其他模块所依赖。
- locks:该部分下主要是关于锁及其相关类,仅依赖于Unsafe或内部依赖,并且被其他高级模块所依赖。
- collections:该部分会依赖Unsafe和前两个基础模块,并且模块内部各个容器间相互较为独立,常用的集合类有:ConcurrentHashMap、CopyOnWriteArrayList、CopyOnWriteArraySet、ArrayBlockingQueue、LinkedBlockingQueue
- executor:这一部分的核心是线程池的运行原理,会依赖于前几个模块。
- tools:这一部分主要应用在多线程间相互依赖执行结果场景,常用的类有CountDownLatch、CyclicBarrier、Semaphore、Executors。
参考: |
标签:依赖,Java,讲讲,Unsafe,并发,模块 From: https://www.cnblogs.com/xfeiyun/p/17231869.html