java中如何處理高併發情況
阿新 • • 發佈:2018-12-30
1.背景描述
併發就是可以使用多個執行緒同時處理不同的操作。
高併發的時候就是有很多使用者訪問,導致系統資料不正確。對於大型網站,比如入口網站。在面對大量使用者訪問,高併發請求方面,基本的解決方案集中在這樣幾個環節,使用高效能的伺服器,高效能的程式語言,還有高效能的web容器,這幾個解決思路意味著需要投入大量的。
使用一般的snchronized或者lock 或者佇列都是無法滿足高併發的情況。
解決方法有三種:
1.使用快取
2.使用生成靜態頁面
html純靜態頁面是效率最高,消耗最小的頁面
3.圖片與伺服器分離
4.程式碼構造的時候儘量避免不必要的資源浪費
<1>不要頻繁的使用new物件,對於在整個應用中只需要存在一個例項的類使用單例模式。對於string的連線操作,使用stringbuffer或者stringbuilder。對於utility型別的類通過靜態方法來訪問
<2>避免使用錯誤的方式,如exception可以控制方法推出,但是Exception要保留stacktrace消耗效能,除非必要不要使用instanceof做條件判斷,儘量使用比的條件判斷方式。使用java中效率高的類,比如arraylist比vector快
<3>使用執行緒安全的集合物件
<4>使用執行緒池