《Thinking In Java》作者:不要使用并发!

前言

今天纯粹就是带你们来读读书的~
最近除了工作,特地买回了自己很喜欢的作者新发售的一本书《On Java》,作者是我的老朋友布鲁斯·埃克尔,在Java领域很有名,你可能没听过他的名字,但极有可能听过他的另一本书《Thinking In Java》 , 我想很多Java工程师都读过这本书 , 可以说是Java编程思想的良心之作 。
虽然布鲁斯是我的老朋友,但我不得不吐槽一下,大概通读了一遍《On Java》之后,我心里大体认为是不如《Thinking In Java》的,可能和写小说一样,读者的要求高了,而作者的年纪大了 。
我认识布鲁斯很多年了,他是个比较幽默风趣的人,经常在书中直言不讳某编程语言的垃圾之处 , 同时又对该语言的未来做一点展望 , 算是一个很中肯且典型的直男程序猿 。
【《Thinking In Java》作者:不要使用并发!】最后说一点,我认识他,他不认识我 。
正文
我着重看了自己比较感兴趣的并发编程这一块,想知道这位大佬对于目前Java并发编程是否有新的看法和意见,不出我所料 , 他没讲什么重要的东西 , 但是好像又讲了,带着吐槽批判式的口吻,陈列了他喜欢和讨厌Java并发编程的地方 。
所以我把一些我觉得有意思的地方画出来,分享给大家,看看一个资深Java大佬对并发编程的理解 。
1、大佬的并发定律
《Thinking In Java》作者:不要使用并发!

文章插图
其实看到作者研究出的这4条定律时,我还是挺意外的,第一句就点题了,不要使用并发 。
仔细想想好像也对……再琢磨一下咦有感觉……最后回忆一下这些年参与的项目……哇擦好有道理!
接下来3条基本算是总纲了,后面的内容都是对这几条的说明 。
2、你已埋下的隐患
《Thinking In Java》作者:不要使用并发!

文章插图
这里就是对2、3条的具体说明了,有些话我觉得略显啰嗦 , 我把对于程序员来讲比较重要的一句话画出来了 。
你很容易写出一个看起来运行正常但实际上有问题的并发程序 。
看到这句话的时候是不是已经开始默默打开自己的IDEA了,然后审视了一遍自己提交的代码?
别看了 , 你埋的炸弹还少么,能看出花来吗 。
看清楚作者后面那句:你这个问题只有满足最罕见的条件时,才会将自己暴露出来 。
我可以这么说,在座绝大部分同行去了下一家公司干活,可能上一家公司的新同事才会在你毫不知情的时候默默踩到你埋的地雷然后被炸个粉碎 , 而你在新公司也正在踩别人的雷,出来混都是要还的 。
3、别否认你就是这种人
《Thinking In Java》作者:不要使用并发!

文章插图
看到这里的时候,我忍不住亲了布鲁斯一口,他痛快的描述出了我一直以来在工作中说不清道不明的烦躁,因为你总会遇到这样的人,同时很难发现自己到底是不是这样的人 。
我在工作前3年其实如履薄冰,感觉自己什么都学了,但去了公司发现什么都不会,怀揣着自我否定一点点完成别人布置的任务,直到工作5年以后才有一种醍醐灌顶的感觉,理解了自己做的是什么,接下来要学习哪个方向,以前学到那么多东西究竟是怎么串联起来的,这是一种打通任督二脉的满足感 。
等到工作8年之后,才真正开始回头看Java语言,对以前烦厌欲呕的Java基础提起莫名的兴趣,同时喜欢看书,写案例,尝试阅读别人的源码等等,此时我才真正有自己一只腿迈进Java领域的意识 。
同时,在工作中会对许多能力一般但沟通较为偏执的同事产生抵触情绪 , 我有时会认为这是一种大人看小孩耍脾气的感觉,这个只有在工作多年之后才会产生,作者很准确的阐述出了我描绘不出的这种解释 。
同样的,我认为在这个成长的过程中,我一定也成为过别人心中眼高手低的人 。
我在这里能分享给大家的经验就是,在工作中多学习少争论,多和厉害的人走近一点 , 虚心把对方的东西都学过来,长此以往你会进步神速,这不是你在网上学习能得到的 , 一定是在工作中 。
4、高级Javaer都有过的想法
《Thinking In Java》作者:不要使用并发!

文章插图
这里我为什么专门画出来,因为很多高级javaer一定有过类似的想法,就是发现了Java并不擅长做并发编程,是否可以用其他语言来完成,而Java只做他自己擅长的事 。

推荐阅读