規範Timer以及ThreadPool

愛爾蘭真是太好了發表於2017-10-30

最近阿里巴巴出來了一個Java編碼規範,於是就趕緊整合了外掛放進了AS裡面進行程式碼檢測。外掛為:規範Timer以及ThreadPool結果就發現了一個問題:

規範Timer以及ThreadPool

仔細一看是讓ScheduledExecutorService來代替Timer,好,那就開始按照規範寫:規範Timer以及ThreadPool

這樣一來就完全符合規範了,Timer的缺點總結一下就三點:

1:Timer的時間判斷是基於絕對時間,就算可以通過修改系統時間來改變。

2:所有的TimerTask只在一個執行緒執行。

3:Timer並不會捕獲異常,任何一個除外異常就會導致所有下面安排的不會執行。

好,說到這裡就可以對這些進行封裝了,首先,封裝簡單的執行緒池。

規範Timer以及ThreadPool

可以看到,標紅的地方建議我們手動建立執行緒池,這一塊的基礎知識就不介紹,直接進行封裝:

規範Timer以及ThreadPool

以上是對執行緒池的封裝,當然,我們也可以把一開始介紹的ScheduledExecutorService加進去,好,直接封裝:

規範Timer以及ThreadPool

java不僅要學會封裝,還要會其中的原理,希望大家能夠從原理出發,發現什麼問題可以提出。


相關文章