學習阿里巴巴開發手冊-補充

1.獲取單例對象需要保證線程安全,其中的方法也要保證線程安全。
2.創建線程或線程池時 請指定有意義的線程名稱。
3.線程資源必須通過線程池提供,不允許在應用中自行顯示創建線程。
4.線程池不允許使用Executors去創建,而是通過ThreadPoolExecutor的方式
5.SimpleDateFormat是線程不安全的類,一般不要定義爲static變量,如果是,必須添加鎖,或者使用DateUtils工具類
6.高併發時,同步調用應該去考量鎖的性能損耗,能用無鎖數據結構就不用鎖,能用鎖區塊,就不要鎖整個方法體,能用對象鎖就不要用類鎖
7.多個資源、數據庫表,對象同時加鎖時,需要保持一致的加鎖順序
8.併發修改同一記錄時,避免更新丟失,需要加鎖,要麼在應用層加鎖,要麼在緩存加鎖,要麼在數據庫層使用鎖,使用version作爲更新數據依據
  如果每次訪問衝突概率小於20%,推薦使用樂觀鎖,樂觀鎖重試次數不得小於3次,否則使用悲觀鎖。
9.多線程並行處理定時任務時,Timer運行多個TimeTask時,只要其中之一沒有捕獲拋出異常,其他任務便會自動終止運動、使用ScheduledExecutorService則沒有這個問題

10.未完

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章