跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 写了一个系列的文章–JUC 框架源码解析系列文章
未分類
13 1 月 2021

写了一个系列的文章–JUC 框架源码解析系列文章

写了一个系列的文章–JUC 框架源码解析系列文章

資深大佬 : amiwrong123 0

来 v 站也一年多了,很喜欢与 v 友们交流技术,只是很后悔没有早点来 v 站(工作后才知道 v 站),要是早点来,可能我的路子会走得更好(话题扯远了)。

去年有段时间对 JUC 框架很感兴趣,就花了几个月时间来阅读了它们的源码。期间也是来过 v 站发过很多帖子来询问。

本人属于比较笨的那种,一个概念如果不是由浅入深、循序渐进的方式讲解就可能搞不懂,所以我写的博客也会很具体,很多细节会去看,所以我觉得我的博客也会比较好懂(王婆卖瓜~)。

写完这个系列确实收获很大,唯一的遗憾是没有时间去看 forkjoinpool 的源码了。在这里把文章分享给大家,希望和大家多多交流。尤其对 AQS 讲解得很细致,把 AQS 分为了四部分循序渐进得进行了讲解(之前也看了这位大佬的博客 https://segmentfault.com/a/1190000016058789 ,他写的很好,对我启发很大,也向大家推荐)。

大家也不要吐槽我在 csdn 写博客哈。下面放干货:

JUC 框架 源码解析系列文章目录 JDK8

JUC 框架的基础是 CAS 和自旋,而 CAS 则是利用Unsafe类提供的 CAS 操作,而原子类则依靠于 CAS 和自旋。下面几篇文章从源码分析 JUC 框架内的几个重要的原子类。

  • JUC AtomicInteger 源码解析 JDK8
  • JUC AtomicIntegerArray 源码解析 JDK8
  • JUC AtomicStampedReference 源码解析 JDK8

ThreadLocal 本身不在 JUC 框架之中,但它却是一种防止多线程竞争的重要手段。

  • JUC ThreadLocal 源码行级解析 JDK8
  • 听说你看过 ThreadLocal 源码,来面试下这几个问题

AQS ( AbstractQueuedSynchronizer )向下依赖了 CAS 和自旋,向上则提供了一个同步队列的实现,许多 JUC 框架内中的类都直接使用了 AQS 作为内部类。下面几篇文章将从 AQS 提供的几种功能进行深度分析。

  • AQS 深入理解系列(一) 独占锁的获取过程
  • AQS 深入理解系列(二) 独占锁的释放过程
  • AQS 深入理解系列(三)共享锁的获取与释放
  • AQS 深入理解系列(四) Condition 接口的实现

AQS 中有些函数的具体实现细节,并不是很容易让人理解,这些地方一般都是因为考虑了同步队列变化中的中间状态。

  • AQS 深入理解 hasQueuedPredecessors 源码分析 JDK8
  • AQS 深入理解 setHeadAndPropagate 源码分析 JDK8
  • AQS 深入理解 doReleaseShared 源码分析 JDK8
  • AQS 深入理解 shouldParkAfterFailedAcquire 源码分析 状态为 0 或 PROPAGATE 的情况分析

JUC 框架中有些同步构件依赖了 AQS 作为实现底层,我们一般使用它们来做到多线程之间的协作。

  • JUC 框架 CountDownLatch 源码解析 JDK8
  • JUC 框架 CyclicBarrier 源码解析 JDK8
  • JUC 框架 Semaphore 源码解析 JDK8
  • JUC 框架 ReentrantReadWriteLock 源码解析 JDK8
  • ReentrantReadWriteLock 深入理解读锁的非公平实现

JUC 框架中也提供了各种用途的集合类。

  • JUC 集合类 CopyOnWriteArrayList 源码解析 JDK8
  • JUC 集合类 CopyOnWriteArraySet 源码解析 JDK8
  • JUC 集合类 ConcurrentSkipListMap 源码解析 JDK8
  • JUC 集合类 ConcurrentHashMap 源码解析 JDK8
  • JUC 集合类 ConcurrentLinkedQueue 源码解析 JDK8
  • JUC 集合类 ConcurrentLinkedDueue 源码解析 JDK8
  • JUC 集合类 ArrayBlockingQueue 源码解析 JDK8
  • JUC 集合类 LinkedBlockingQueue 源码解析 JDK8
  • JUC 集合类 LinkedBlockingDueue 源码解析 JDK8
  • JUC 集合类 PriorityBlockingQueue 源码解析 JDK8
  • JUC 集合类 DelayQueue 源码解析 JDK8
  • JUC 集合类 LinkedTransferQueue 源码解析 JDK8
  • JUC 集合类 SynchronousQueue 源码解析 JDK8

最后部分将讲解线程池相关源码。

  • JUC 框架 从 Runnable 到 Callable 到 FutureTask 使用浅析
  • JUC 框架 FutureTask 源码解析 JDK8
  • JUC 框架 CompletableFuture 源码解析 JDK8
  • JUC 线程池 ThreadPoolExecutor 源码解析 JDK8
  • JUC 线程池 ScheduledThreadPoolExecutor 源码解析 JDK8

PS:如果看了觉得真有帮助,可以帮忙投个票吗,https://bss.csdn.net/m/topic/blog_star2020/detail?username=anlian523

大佬有話說 (6)

  • 資深大佬 : yaocai321

    给你一个大大的赞~

  • 資深大佬 : sprit

    爱了爱了

  • 資深大佬 : zifangsky

    简单看了一篇,看起来写得挺好的,后续有时间会好好拜读你的文章。另外,已经给你投票了。

  • 資深大佬 : zyfsuzy

    可以

  • 資深大佬 : yamasa

    支持支持

  • 資深大佬 : fangcan

    还没具体看内容,看帖子感觉不错 支持

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具