【㉿Java并发】你说你精通Java并发,那给我讲讲J.U.C吧

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。

 

参考:

 

posted @ 2023-03-18 21:29  残城碎梦  阅读(19)  评论(0编辑  收藏  举报