《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只做他自己擅長的事 。

推薦閱讀