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

阿裏java編碼規範記錄

span thread 解決 div 安全 工具類 imp oom fix

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

.

阿裏java編碼規範記錄