博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java并发知识概述
阅读量:7182 次
发布时间:2019-06-29

本文共 1252 字,大约阅读时间需要 4 分钟。

hot3.png

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

  1. 感觉写博客应该能锻炼人的条理,提升记忆力,今年尤其感觉记忆力下降得厉害,所以就是硬逼着自己写了几篇。

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

  3. 建议,引导大家可以去看看java并发包的源码,因为java并发包的源码是世界java水平一流的大师写的,代码设计得超级漂亮,大家可以从里面学到很多优秀的设计思想。

整个java.util.concurrent包,按照功能可以大致划分如下:

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

学习并发的知识,个人认为第一步应该要搞清楚java并发的三大特性。所以我就写了一篇》, 比较深入的讲解了关于并发特性的知识,如果能掌握这篇里面的知识,那肯定对java的并发的特性掌握得很扎实了。

    

在有了java并发的认识以后。那么我认为先熟悉juc-atomic类。但是juc-atomic类源码都是很类似的,所以我挑了其中的一个类对其源码写了注释。看懂这篇以后再去分析其余的juc-atomic类就简单多了。

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

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

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

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

    希望能帮助到部分同学。

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

你可能感兴趣的文章
html弹窗半透明
查看>>
5分钟 搞定UIButton的文本与图片的布局
查看>>
linux basename命令的使用
查看>>
Oracle-13:Oracle中的表分区
查看>>
memcached数据同步与保存
查看>>
闪回数据库+闪回数据库的一些参数+查看闪回数据库是否打开+开启闪回数据库的步骤+闪回数据库的一些存储信息...
查看>>
C#winform窗体实现对sql server数据库的增删改查
查看>>
程序员面试那些事儿
查看>>
3.输出,输入,基本数据类型
查看>>
java 基础 --- 动态代理和静态代理
查看>>
go语言面向对象之方法
查看>>
从Linux上传到Git过程
查看>>
航院5538:House Building
查看>>
oracle中事务处理
查看>>
ORA-01940: cannot drop a user that is currently connected 问题解析
查看>>
41.Node.js使用cnpm
查看>>
org.xml.sax.SAXParseException: Failed to read schema document 的原因分析与解决方法
查看>>
再谈应用环境下的 TIME_WAIT 和 CLOSE_WAIT
查看>>
win8 64位操作系统 Microsoft Visual Studio 2010在IIS上调试 “此任务要求应用程序具有提升的权限”等问题...
查看>>
dockerfile centos+jdk+时区设置
查看>>