java并发知识概述

    最近利用了两个星期的空闲时间,写了几篇关于Java并发模块的内容。写的缘由以下:java

  1. 感受写博客应该能锻炼人的条理,提高记忆力,今年尤为感受记忆力降低得厉害,因此就是硬逼着本身写了几篇。并发

  2. 由于本人就是干大数据的,有时候避免不了须要去分析大数据的源码,去优化,修改大数据的源码,感受到若是有同窗的java并发的知识不过关的话,有可能连阅读源码的任务也完成不了,更不用谈去优化,修改源码了。因此想写几篇博客多少能帮到须要的同窗。固然我写的时候也没刻意去设计,更多的是就是把jdk的源码给注释了一下,注释信息却是写得挺详细的。框架

  3. 建议,引导你们能够去看看java并发包的源码,由于java并发包的源码是世界java水平一流的大师写的,代码设计得超级漂亮,你们能够从里面学到不少优秀的设计思想。工具

整个java.util.concurrent包,按照功能能够大体划分以下:学习

juc-atomic 原子类框架​juc-locks 锁框架​juc-sync 同步器框架​juc-collections 集合框架​juc-executors 执行器框架

学习并发的知识,我的认为第一步应该要搞清楚java并发的三大特性。因此我就写了一篇《从硬件层面聊聊volatile和synchonzied关键字》, 比较深刻的讲解了关于并发特性的知识,若是能掌握这篇里面的知识,那确定对java的并发的特性掌握得很扎实了。大数据

    

在有了java并发的认识之后。那么我认为先熟悉juc-atomic类。可是juc-atomic类源码都是很相似的,因此我挑了其中的一个类对其源码写了注释《jdk源码之AtomicInteger源码注释》。看懂这篇之后再去分析其他的juc-atomic类就简单多了。优化

学习了Atomic类型的类之后,接下来要学习的是juc-locks锁框架。这个里面有一个很是重要的对象就是AQS,AQS是一个抽象类。ReentantLock,ReentantReadWriteLock锁都是基于这个实现的。因此我挑了ReentantLock类对其源码进行了注释《jdk源码之ReentantLock源码注释》,深刻理解了AQS之后,再去看ReentantReadWriteLock的源码就简单多了。并发包里面的juc-sync 同步器框架里面的工具类CountDownLatch,CyclicBarrier等也是基于AQS是实现的,因此同窗们必定掌握好AQS的原理。atom

    有了上面的知识,咱们就能够去看juc-collections 集合框架的源码了。我并无把全部的类都剖析了一遍,而是选了两个重要的类对源码进行了注释。由于这两个类是平时使用频率比较高,并且设计思想也很好。很是值得咱们去学习。《JDK源码之LinkedBlockingQueue源码注释》《JDK源码之ConCurrentHashMap源码注释》.net

    学完了前面全部的知识,咱们就再学习对前面全部知识综合运用的一个模块juc-executors 执行器框架。里面讲了多个线程池,我挑了其中一个比较重要的线程池,对其源码进行了注释。《JDK源码之FixedThreadPool源码注释》,看懂这个线程池的源码之后再去分析其余的线程池就比较简单了。线程

   祝阅读这篇文章的同窗学业有成

    但愿能帮助到部分同窗。

相关文章
相关标签/搜索