《实战java高并发程序设计》源码整理及读书笔记
作者:13
GitHub:https://github.com/ZHENFENG13
版权声明:本文为原创文章,未经允许不得转载。
前言
不要被标题吓到,虽然书籍是《实战java高并发程序设计》,不过本文只是写一写本人的一点读书感受,顺便整理了一下书中的代码,其实我原本是不想敲代码的,不过去网络上搜了一圈之后,发现根本没有现成的,只能自己敲了,既然整理好了一部分代码,索性就上传到GitHub上,让大家都看一看,节省一下其他人的时间,GitHub地址在这里,无法访问的话,也可以到码云的仓库中看,地址是点这里,给项目个star吧。
书籍简介
当时在京东选书的时候就是被这本书的封面给吸引了,莫名的挺喜欢这本书,刚好那段时间也想补充一下这方面的知识点,看了一下书籍简介就下单购买了。
2017年4月10号开始读,到30号读完,中间的二十天基本都是抽出中午的一小段时间看书,每天虽然看的不多,但是加在一起就不一样了,事情总会做完的,让我想起高中时物理老师的一句话:
“小步走,不停步,等于前进一大步”
虽然分开来看量很小,但是慢慢积累下来,概念就不同了。
整本书看下来感觉还不错,案例的数量很大、质量也很高,动手实践一下得到了不小的收获,也达到了买书前的预期,理论知识不是特别的晦涩难懂、代码也很清晰,对这本书的好评是远远多于差评的,知识点丰富、学到了想要学的知识点。
读书笔记
书中就是知识点的介绍,还有一些代码案例,作者讲解的也挺详细的,这篇文章里就不会讲了,都是些概念性的知识。
书是好书,案例也是好案例,个人看来,这本书也是有缺点,当然,这个只是个人看法,对这本书最大的槽点应该就是插图了:
书中的插图基本都是这个风格,而且由于印刷原因有些插图有些不清楚,因此最大的槽点是这个。
- 第一次啃书的过程中,并没有特别跟着作者的思路去敲代码案例,只是用笔在书本里做了一些注释,因为我觉得网上应该会有相关的源码资源,结果是我找了挺久没找到,因此就自己动手写了一遍,我觉得应该也有人和我一样懒得去敲一遍代码,所以就打算公布在网上了。
- 代码里都是两个线程,下载了源码后,可以自行在编辑器里模拟多个线程的运行情况。
- 对线程和高并发的认识有所加深,这次写文章、整理源码的过程中又读了一遍全书,感觉收获颇丰,印象更加深刻了,可能过一段时间又忘了,谁知道呢。
看第一遍的时候,其实有过思想准备,也对自己说过,如果书本中理论感太强,就慢慢看,一天翻个几页,如果代码案例多的话,就多敲敲代码。看了之后发现,有些章节确实比较偏理论,不过耐下心来也是能看得下去,每天中抽些时间翻个几页,慢慢的也就看完了,至于敲代码这件事就没去做,因为我觉得网上应该会有相关的资源的,哪知道,一条都没。
印象比较深的几个知识点是指令重排、比较交换CAS、ThreadLocal、读写锁优化,在这里提一下,详细的我就不写了,想了解的朋友自行搜索,这些知识点书里都做了详细的介绍,会让你收获满满的。
读书心得
不知道大家有没有这种感觉,对多线程、锁这种知识点“又爱又恨”,感觉很近又感觉很远,想去认真探索一个究竟,但是终究没能迈出第一步,或者迈出第一步也不想继续前进了,觉得这些知识点特别难搞。
对线程这一块儿的知识比较模糊,初学Java的时候,也没有特别着重的去看,觉得有些晦涩难懂,后来工作了,也没有接触过类似的编码要求,因此造成了一个思维怪圈,对之莫名的好奇,又无法完全说服自己去认真的学习它并对之有一个透彻的理解,平时工作中确实用的不多,而且试着学过,又觉得过程比较枯燥,但是也的的确确知道这个知识点的重要性,也知道一些框架或者工具底层肯定是用到了这些知识点的,只不过是自己没有动手写过相关代码罢了。
其实看这本书,也是因为猎奇心理吧,不想总是对一个知识点有小小的恐惧,我感觉我还是掌握它比较好,如果是一年前,这本书我可能也看不下去,因为那个时候的我还没养成看书的习惯,一开始学知识都是去百度搜,去看博客等,而且很少主动的学习,更别提去看书了,慢慢的就发现这种碎片式的知识学习方式并没有彻底解决技能掌握度低的问题,而且知识点太碎了,无法连贯起来形成自己的知识系统,技能栈不全面,所以从去年开始,开始主动买技术书籍以及技能相关的书籍来看,也慢慢的由一点也看不下去,到强迫自己看一点,再到每天能看几页,最后能坚持看完一本,接着是第二本、第三本....
因为想看书了,而且也慢慢的养成了看书的习惯了,因此啃完这本书也就很轻松了,后来因为整理书中的源码又看了一遍,就算是加深印象了吧。
结语
这篇文章主要是讲一下自己的体会,其实都是一些牢骚话,关键的是书中的源码,因为网上确实没有这本书的相关文档,因此就自己整理了一下,如果有同样在看这本书的朋友,不太想自己一点点敲书上的代码的话,可以直接到我的github仓库中去下载代码。
其实我就是不想敲代码,哈哈哈哈,去网络上搜了一圈之后,发现根本没有现成的,只能自己敲了,既然整理好了一部分代码,索性就上传到GitHub上,让大家都看一看,节省一下其他人的时间,GitHub地址在这里,无法访问的话,也可以到码云的仓库中看,地址是点这里,给项目个star吧。
推荐一下自己的达人课,感兴趣的朋友可以看一下:SSM搭建精美实用的管理系统
第一次,当它本可进取时,却故作谦卑;
第二次,当它空虚时,用爱欲来填充;
第三次,在困难和容易之间,它选择了容易;
第四次,它犯了错,却借由别人也会犯错来宽慰自己;
第五次,它自由软弱,却把它认为是生命的坚韧;
第六次,当它鄙夷一张丑恶的嘴脸时,却不知那正是自己面具中的一副;
第七次,它侧身于生活的污泥中虽不甘心,却又畏首畏尾。