有考網(wǎng)有考網(wǎng)合作機(jī)構(gòu)>黃浦區(qū)培訓(xùn)學(xué)校>上海黃浦人民廣場(chǎng)達(dá)內(nèi)IT教育培訓(xùn)
上海黃浦人民廣場(chǎng)達(dá)內(nèi)IT教育培訓(xùn)
全國(guó)統(tǒng)一學(xué)習(xí)專(zhuān)線(xiàn) 8:30-21:00
位置:有考網(wǎng) > 計(jì)算機(jī)類(lèi) > Java開(kāi)發(fā) > > Java開(kāi)發(fā)中的高并發(fā)是什么?  正文

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

發(fā)布時(shí)間:2021-09-22 15:57:54來(lái)源:轉(zhuǎn)載

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

高并發(fā)系統(tǒng)的設(shè)計(jì)需要注意一下幾點(diǎn):

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

用jprofiler等工具找出性能瓶頸,減少額外的開(kāi)銷(xiāo)。

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

優(yōu)化數(shù)據(jù)庫(kù)結(jié)構(gòu),多做索引,提高查詢(xún)效率。

統(tǒng)計(jì)的功能盡量做緩存,或按每天一統(tǒng)計(jì)或定時(shí)統(tǒng)計(jì)相關(guān)報(bào)表,避免需要時(shí)進(jìn)行統(tǒng)計(jì)的功能。

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

解決以上問(wèn)題后,使用服務(wù)器集群來(lái)解決單臺(tái)的瓶頸問(wèn)題。

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

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

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

下面簡(jiǎn)單表述一下:

背景描述

并發(fā)就是可以使用多個(gè)線(xiàn)程同時(shí)處理不同的操作。

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

使用一般的snchronized或者lock 或者隊(duì)列都是無(wú)法滿(mǎn)足高并發(fā)的情況。

解決方法有三種:

1、使用緩存

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

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

3、圖片與服務(wù)器分離

4、代碼構(gòu)造的時(shí)候盡量避免不必要的資源浪費(fèi)

相關(guān)內(nèi)容: Java開(kāi)發(fā) Java高并發(fā) Java開(kāi)發(fā)高并發(fā)

同類(lèi)文章
相關(guān)熱詞