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的原理。

    有了上面的知识,我们就可以去看juc-collections 集合框架的源码了。我并没有把所有的类都剖析了一遍,而是选了两个重要的类对源码进行了注释。因为这两个类是平时使用频率比较高,而且设计思想也很好。非常值得我们去学习。《JDK源码之LinkedBlockingQueue源码注释》《JDK源码之ConCurrentHashMap源码注释》

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

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

    希望能帮助到部分同学。

转载于:https://my.oschina.net/u/1464779/blog/3051321

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值