有考網(wǎng)有考網(wǎng)合作機構>黃浦區(qū)培訓學校>上海黃浦人民廣場達內IT教育培訓
上海黃浦人民廣場達內IT教育培訓
全國統(tǒng)一學習專線 8:30-21:00
位置:有考網(wǎng) > 計算機類 > Java開發(fā) > > Java開發(fā)中的高并發(fā)是什么?  正文

Java開發(fā)中的高并發(fā)是什么?

發(fā)布時間:2021-09-22 15:57:54來源:轉載

學習高并發(fā)首先要理解高并發(fā)的概念。并發(fā)是可以使用多個線程或者多個進程,同時處理不同的操作。簡單的說來就是只同一個功能,或者說對同一條數(shù)據(jù)的更改可能是很多個人同時進行。那么此時就會存在數(shù)據(jù)不同步而導致保持了錯誤的數(shù)據(jù)到數(shù)據(jù)庫。比如4個管理員對同一個對一個用戶的余額進行修改。主要的話還是要從數(shù)據(jù)庫加鎖上來解決。一般都是行級讀鎖,即在一個時刻只能有一個人拿取此條數(shù)據(jù)進行修改,待修改完成后提交在釋放鎖供下一個人獲取數(shù)據(jù)。

高并發(fā)系統(tǒng)的設計需要注意一下幾點:

盡量使用緩存,包括用戶緩存,信息緩存等,多花點內存來做緩存,可以大量減少與數(shù)據(jù)庫的交互,提高性能。

用jprofiler等工具找出性能瓶頸,減少額外的開銷。

優(yōu)化數(shù)據(jù)庫查詢語句,減少直接使用hibernate等工具的直接生成語句(僅耗時較長的查詢做優(yōu)化)。

優(yōu)化數(shù)據(jù)庫結構,多做索引,提高查詢效率。

統(tǒng)計的功能盡量做緩存,或按每天一統(tǒng)計或定時統(tǒng)計相關報表,避免需要時進行統(tǒng)計的功能。

能使用靜態(tài)頁面的地方盡量使用,減少容器的解析(盡量將動態(tài)內容生成靜態(tài)html來顯示)。

解決以上問題后,使用服務器集群來解決單臺的瓶頸問題。

基本上以上述問題解決后,達到系統(tǒng)較優(yōu)。

如果低層的連接數(shù)過大(如大量的端口占用需求),這種情況下考慮直接C來寫,其他的可以用Java來做。

那么用Java語言如何處理高并發(fā)情況呢?

下面簡單表述一下:

背景描述

并發(fā)就是可以使用多個線程同時處理不同的操作。

高并發(fā)的時候就是有很多用戶訪問,導致系統(tǒng)數(shù)據(jù)不正確。對于大型網(wǎng)站,比如門戶網(wǎng)站。在面對大量用戶訪問,高并發(fā)請求方面,基本的解決方案集中在這樣幾個環(huán)節(jié),使用高性能的服務器,高性能的編程語言,還有高性能的web容器,這幾個解決思路意味著需要投入大量的。

使用一般的snchronized或者lock 或者隊列都是無法滿足高并發(fā)的情況。

解決方法有三種:

1、使用緩存

2、使用生成靜態(tài)頁面

html純靜態(tài)頁面是效率較高,消耗較小的頁面

3、圖片與服務器分離

4、代碼構造的時候盡量避免不必要的資源浪費

相關內容: Java開發(fā) Java高并發(fā) Java開發(fā)高并發(fā)

同類文章
相關熱詞