专栏首页13blog.site《实战java高并发程序设计》源码整理及读书笔记

《实战java高并发程序设计》源码整理及读书笔记

作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载。

前言

不要被标题吓到,虽然书籍是《实战java高并发程序设计》,不过本文只是写一写本人的一点读书感受,顺便整理了一下书中的代码,其实我原本是不想敲代码的,不过去网络上搜了一圈之后,发现根本没有现成的,只能自己敲了,既然整理好了一部分代码,索性就上传到GitHub上,让大家都看一看,节省一下其他人的时间,GitHub地址在这里,无法访问的话,也可以到码云的仓库中看,地址是点这里,给项目个star吧。

书籍简介

当时在京东选书的时候就是被这本书的封面给吸引了,莫名的挺喜欢这本书,刚好那段时间也想补充一下这方面的知识点,看了一下书籍简介就下单购买了。

2017年4月10号开始读,到30号读完,中间的二十天基本都是抽出中午的一小段时间看书,每天虽然看的不多,但是加在一起就不一样了,事情总会做完的,让我想起高中时物理老师的一句话:

“小步走,不停步,等于前进一大步”

虽然分开来看量很小,但是慢慢积累下来,概念就不同了。

整本书看下来感觉还不错,案例的数量很大、质量也很高,动手实践一下得到了不小的收获,也达到了买书前的预期,理论知识不是特别的晦涩难懂、代码也很清晰,对这本书的好评是远远多于差评的,知识点丰富、学到了想要学的知识点。

读书笔记

书中就是知识点的介绍,还有一些代码案例,作者讲解的也挺详细的,这篇文章里就不会讲了,都是些概念性的知识。 书是好书,案例也是好案例,个人看来,这本书也是有缺点,当然,这个只是个人看法,对这本书最大的槽点应该就是插图了:

书中的插图基本都是这个风格,而且由于印刷原因有些插图有些不清楚,因此最大的槽点是这个。

  • 第一次啃书的过程中,并没有特别跟着作者的思路去敲代码案例,只是用笔在书本里做了一些注释,因为我觉得网上应该会有相关的源码资源,结果是我找了挺久没找到,因此就自己动手写了一遍,我觉得应该也有人和我一样懒得去敲一遍代码,所以就打算公布在网上了。
  • 代码里都是两个线程,下载了源码后,可以自行在编辑器里模拟多个线程的运行情况。
  • 对线程和高并发的认识有所加深,这次写文章、整理源码的过程中又读了一遍全书,感觉收获颇丰,印象更加深刻了,可能过一段时间又忘了,谁知道呢。

看第一遍的时候,其实有过思想准备,也对自己说过,如果书本中理论感太强,就慢慢看,一天翻个几页,如果代码案例多的话,就多敲敲代码。看了之后发现,有些章节确实比较偏理论,不过耐下心来也是能看得下去,每天中抽些时间翻个几页,慢慢的也就看完了,至于敲代码这件事就没去做,因为我觉得网上应该会有相关的资源的,哪知道,一条都没。

印象比较深的几个知识点是指令重排、比较交换CAS、ThreadLocal、读写锁优化,在这里提一下,详细的我就不写了,想了解的朋友自行搜索,这些知识点书里都做了详细的介绍,会让你收获满满的。

读书心得

不知道大家有没有这种感觉,对多线程、锁这种知识点“又爱又恨”,感觉很近又感觉很远,想去认真探索一个究竟,但是终究没能迈出第一步,或者迈出第一步也不想继续前进了,觉得这些知识点特别难搞。

对线程这一块儿的知识比较模糊,初学Java的时候,也没有特别着重的去看,觉得有些晦涩难懂,后来工作了,也没有接触过类似的编码要求,因此造成了一个思维怪圈,对之莫名的好奇,又无法完全说服自己去认真的学习它并对之有一个透彻的理解,平时工作中确实用的不多,而且试着学过,又觉得过程比较枯燥,但是也的的确确知道这个知识点的重要性,也知道一些框架或者工具底层肯定是用到了这些知识点的,只不过是自己没有动手写过相关代码罢了。

其实看这本书,也是因为猎奇心理吧,不想总是对一个知识点有小小的恐惧,我感觉我还是掌握它比较好,如果是一年前,这本书我可能也看不下去,因为那个时候的我还没养成看书的习惯,一开始学知识都是去百度搜,去看博客等,而且很少主动的学习,更别提去看书了,慢慢的就发现这种碎片式的知识学习方式并没有彻底解决技能掌握度低的问题,而且知识点太碎了,无法连贯起来形成自己的知识系统,技能栈不全面,所以从去年开始,开始主动买技术书籍以及技能相关的书籍来看,也慢慢的由一点也看不下去,到强迫自己看一点,再到每天能看几页,最后能坚持看完一本,接着是第二本、第三本....

因为想看书了,而且也慢慢的养成了看书的习惯了,因此啃完这本书也就很轻松了,后来因为整理书中的源码又看了一遍,就算是加深印象了吧。

结语

这篇文章主要是讲一下自己的体会,其实都是一些牢骚话,关键的是书中的源码,因为网上确实没有这本书的相关文档,因此就自己整理了一下,如果有同样在看这本书的朋友,不太想自己一点点敲书上的代码的话,可以直接到我的github仓库中去下载代码。

其实我就是不想敲代码,哈哈哈哈,去网络上搜了一圈之后,发现根本没有现成的,只能自己敲了,既然整理好了一部分代码,索性就上传到GitHub上,让大家都看一看,节省一下其他人的时间,GitHub地址在这里,无法访问的话,也可以到码云的仓库中看,地址是点这里,给项目个star吧。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spring+SpringMVC+MyBatis+easyUI整合优化篇(八)代码优化整理小记及个人吐槽

    前言 这两天也一直在纠结这一篇文章该写什么东西,前面临时加的两篇文章就有些打乱了整体节奏,这一篇又想去写一下代码层面优化的事情,可是也不太能抓住重要的点,不太确...

    我是十三
  • org.apache.catalina.core.StandardService - Stopping service [Tomcat]问题解决思路

    由于线上生产服务器出现了一点问题,导致一些服务需要重启,也包括这次启动报错的 jar 包。

    我是十三
  • Spring+SpringMVC+MyBatis+easyUI整合优化篇(一)Java语言中System.out.print与Log的比较

    作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载。 前言 距离上一次更新博...

    我是十三
  • 总结关于【代码中的坏味道】

    代码检查工具方法建议是不要超过80行,这只是一个参考标准而已。这样做的目的是:如果超过80行,阅读起来会相对费劲。也见过上千行的方法,这种超级方法不管注释写得再...

    田维常
  • 你是否有过代码写的太烂不敢开源的经历?

    作为一个写了十几年代码的老司机,在入行不久会有这种心理,老是觉得自己写的代码见不得人,主要还是基础不牢固写出来的代码属于见光死的程度,从测试人员那边的感觉就能测...

    程序员互动联盟
  • 【云+社区年度征文】浅谈java企业应用开发代码规范

    很多时候我们项目迭代到后期,项目会变得很混乱,往往只有少数人能知道某段代码是干嘛的和该如何去改,或者是干脆谁都不知道,只能靠通过注释去猜测这段代码可能的作用。原...

    六个核弹
  • 如何提高代码质量

    说起代码质量,脑子里会冒出很多词,命名规范、格式规范、日志规范、单元测试覆盖率...

    用户1516716
  • 【React 实战教程】从0到1 构建 github star管理工具

    在日常使用github中,除了利用git进行项目版本控制之外,最多的用处就是游览各式的项目,在看到一些有趣或者有用的项目之后,我们通常就会顺手star,目的是日...

    用户2356368
  • 如何写出优质干净的代码

    先列举出编写干净代码的一些好处,再提出6个技巧用于编写干净代码,供开发者进行参考学习。

    IT大咖说
  • TouchGFX中生成代码与用户代码

    TouchGFX的框架是基于MVP模型设计,代码结构主要分为三大类,GUI引擎,生成代码,用户代码,首先先看什么是MVP,即Model, View, Prese...

    用户1605515

扫码关注云+社区

领取腾讯云代金券