1. 程式人生 > >阿里java編碼規範記錄

阿里java編碼規範記錄

1.【強制】執行緒池資源必須通過執行緒池提供,不允許在應用中顯示建立執行緒

說明:使用執行緒池的好處是減少在建立和銷燬執行緒上所消耗的時間及系統資源,解決資源不足的問題。如果不使用執行緒池,有可能造成系統建立大量同類執行緒而導致消耗完記憶體或者“過度切換”的問題。

2【強制】執行緒池不允許使用Executors建立,而是通過ThreadPoolExecutor的方式建立,這樣的處理方式能讓編寫程式碼的工程師更加明確執行緒池的執行規則,規避資源耗盡的風險。

說明:Executors返回的執行緒池物件的弊端如下:
    1.FixedThreadPool和SingleThreadPool:允許請求的佇列長度為Integer.MAX_VALUE,可能會堆積大量的請求而導致OOM。
    
2.CachedThreadPool和ScheduledThreadPool:允許的建立執行緒數量為Integer.MAX_VALUE,可能會建立大量執行緒而導致OOM

3.【強制】SimpleDateFormate是執行緒不安全的類,一般不要定義為static變數,如果定義為static,必須加鎖或者使用DateUtils工具類

說明:如果是jdk8的應用,可以用instant代替Date,LocalDateTime代替Calendar,DateTimeFormatter代替SimpleDateFormat

 

.