JUC框架 源码解析系列文章目录 JDK8
前言
笔者在接下来这段时间将对JUC框架内的重点内容进行深度解析,由于内容颇多,需要分成多篇文章,所以在这里列一个目录,方便大家翻阅。
目录
JUC框架的基础是CAS和自旋,而CAS则是利用Unsafe类提供的CAS操作,而原子类则依靠于CAS和自旋。下面几篇文章从源码分析JUC框架内的几个重要的原子类。
ThreadLocal本身不在JUC框架之中,但它却是一种防止多线程竞争的重要手段。
AQS(AbstractQueuedSynchronizer)向下依赖了CAS和自旋,向上则提供了一个同步队列的实现,许多JUC框架内中的类都直接使用了AQS作为内部类。下面几篇文章将从AQS提供的几种功能进行深度分析。
AQS中有些函数的具体实现细节,并不是很容易让人理解,这些地方一般都是因为考虑了同步队列变化中的中间状态。
JUC框架中有些同步构件依赖了AQS作为实现底层,我们一般使用它们来做到多线程之间的协作。
JUC框架中也提供了各种用途的集合类。
最后部分将讲解线程池相关源码。
至此,本系列文章暂告一段落,以后有机会再来补充。
另外,如果你对JUC框架的源码有什么疑问,最好是去直接询问大佬,大佬们甚至是Doug Lea本人都会愿意解答的。本人的体验是一个问题去各大中文论坛提问一无所获,甚至去stackoverflow也没人回答问题,还是concurrency-interest比较靠谱。另外,提问前先在搜索引擎找找看(学会百度~),提问时用英文描述清楚(起码让外国人能看懂~)。
后记
以上文章一般多以源码分析为主,虽不敢保证完全权威,但肯定能为你对JUC的理解铺平道路。
如果对我的文章有疑问,欢迎在评论区指出。
人若无名,专心练剑!与诸君共勉!
