1. 程式人生 > >java中如何處理高併發情況

java中如何處理高併發情況

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>使用執行緒池