成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

第五天-《企業(yè)應(yīng)用架構(gòu)模式》-并發(fā)

linkFly / 2151人閱讀

摘要:離線并發(fā)多個(gè)數(shù)據(jù)庫(kù)事務(wù)中支持多線程的各種應(yīng)用服務(wù)器并發(fā)問(wèn)題丟失更新同時(shí)編輯文件,相繼保存,最終丟失先保存者更新的內(nèi)容不一致性讀取期間,數(shù)據(jù)有更新執(zhí)行語(yǔ)境從與外界交互角度看的個(gè)語(yǔ)境請(qǐng)求對(duì)應(yīng)于軟件工作的外部環(huán)境發(fā)出的單個(gè)調(diào)用,處理請(qǐng)求的軟件會(huì)決

離線并發(fā):多個(gè)數(shù)據(jù)庫(kù)事務(wù)中支持多線程的各種應(yīng)用服務(wù)器

1. 并發(fā)問(wèn)題: 1)丟失更新(同時(shí)編輯文件,相繼保存,最終丟失先保存者更新的內(nèi)容) 2)不一致性(讀取期間,數(shù)據(jù)有更新) 2. 執(zhí)行語(yǔ)境: 1)從與外界交互角度看的2個(gè)語(yǔ)境:

請(qǐng)求:

對(duì)應(yīng)于軟件工作的外部環(huán)境發(fā)出的單個(gè)調(diào)用,處理請(qǐng)求的軟件會(huì)決定是否返回一個(gè)應(yīng)答(過(guò)程大部分是在服務(wù)器端進(jìn)行,而客戶端則假設(shè)為在等待應(yīng)答)

會(huì)話:

客戶端和服務(wù)器端之間一次長(zhǎng)時(shí)間的交互

2)操作系統(tǒng)的2個(gè)語(yǔ)境: 進(jìn)程:

重量級(jí)的執(zhí)行語(yǔ)境,將其正在處理的內(nèi)部數(shù)據(jù)域外部隔離開(kāi)(有效隔離,減少?zèng)_突,但需要消耗很多資源)

線程:

輕量級(jí)的執(zhí)行語(yǔ)境,一個(gè)多帶帶的進(jìn)程里可以存在多個(gè)線程(可以充分利用資源,但易導(dǎo)致并發(fā)問(wèn)題)

3. 隔離與不變性:

企業(yè)應(yīng)用2個(gè)解決方案:

1)隔離: 方案1:

劃分?jǐn)?shù)據(jù),使得每一個(gè)片數(shù)據(jù)都只能被一個(gè)執(zhí)行單元訪問(wèn)(操作系統(tǒng)為每個(gè)進(jìn)程多帶帶分配一片內(nèi)存,并且只有這個(gè)進(jìn)程可以對(duì)這片內(nèi)存進(jìn)行讀寫(xiě)操作)

方案2:

文件鎖,一個(gè)人打開(kāi)文件,其他人再無(wú)法打開(kāi)或者只打開(kāi)該文件只讀拷貝并且不能修改(好的并發(fā)設(shè)計(jì)應(yīng)該是:找到各種創(chuàng)建隔離區(qū)的辦法,并且保證在每個(gè)隔離區(qū)里能夠完成盡可能多的任務(wù))

2)不變性: 方案1:

識(shí)別哪些是不變的數(shù)據(jù)(只有在共享數(shù)據(jù)可以修改的情況下,并發(fā)問(wèn)題才會(huì)出現(xiàn)),不用考慮這些數(shù)據(jù)的并發(fā)問(wèn)題二廣泛地共享它們

方案2:

把那些只讀取數(shù)據(jù)的程序分開(kāi),讓他們只是用拷貝的數(shù)據(jù)源

4. 樂(lè)觀并發(fā)控制盒悲觀并發(fā)控制: 1)2種鎖: 樂(lè)觀鎖:

關(guān)于沖突檢測(cè)的(僅當(dāng)提交更新時(shí)才檢查沖突)

優(yōu)點(diǎn):并發(fā)性高,限制較少,使用起來(lái)比較自由

缺點(diǎn):業(yè)務(wù)數(shù)據(jù)比較復(fù)雜,難以自動(dòng)合并,并且使用者難以發(fā)現(xiàn)差別時(shí),只能丟棄原有數(shù)據(jù),從頭開(kāi)始更新

悲觀鎖:

關(guān)于沖突避免的(只要有人已是用當(dāng)前數(shù)據(jù)或者文件,拒絕其他人使用當(dāng)前數(shù)據(jù)或文件)

優(yōu)點(diǎn):減少并發(fā)程度

缺點(diǎn):用戶體驗(yàn)差

兩種策略選擇標(biāo)準(zhǔn):沖突的頻率與嚴(yán)重性(沖突少或者沖突后果不嚴(yán)重時(shí),選擇樂(lè)觀鎖;否則選擇悲觀鎖)

2)避免不一致性: a. 檢測(cè)不一致讀:
悲觀策略:

通過(guò)讀加鎖(read lock,共享鎖)和寫(xiě)加鎖(write lock,排他鎖),可以一次多個(gè)人對(duì)同一份數(shù)據(jù)加只讀鎖,但只要有人得到一個(gè)只讀鎖,其他人就都無(wú)法得到寫(xiě)鎖;一旦有人得到一個(gè)寫(xiě)鎖,其他人都不能得到兩種所中任意一種

樂(lè)觀策略:

基于數(shù)據(jù)的某種版本標(biāo)識(shí)(時(shí)間戳或者順序計(jì)數(shù)器),核對(duì)將要更新數(shù)據(jù)的版本標(biāo)識(shí)和共享數(shù)據(jù)的版本標(biāo)識(shí),如果兩者一樣,系統(tǒng)允許更新數(shù)據(jù)并更新共享數(shù)據(jù)的版本標(biāo)識(shí)

b. 時(shí)序讀:

每次讀取數(shù)據(jù)時(shí)都是用某種時(shí)間戳或其他不變的標(biāo)簽作為約束條件,數(shù)據(jù)庫(kù)根據(jù)時(shí)間或者標(biāo)簽返回?cái)?shù)據(jù)(源代碼控軟件可以用,但數(shù)據(jù)庫(kù)比較困難并且代價(jià)昂貴)

3)死鎖:

處理死鎖的方法:

a. 用軟件來(lái)檢測(cè)死鎖的發(fā)生,選擇一個(gè)犧牲者,放棄他的工作和他所加的鎖;

b. 給每個(gè)鎖都加上時(shí)間限制,一旦達(dá)到時(shí)間限制,所加的鎖就會(huì)失效,工作就會(huì)丟失;

防止死鎖的方法:

強(qiáng)制人們?cè)陂_(kāi)始工作時(shí)就獲得所有可能需要的鎖,在此之后就不再允許得到更多的鎖;

可以硬性規(guī)定每個(gè)人獲得鎖的順序(如按姓名字母順序)

5. 事務(wù): 1)ACID:

原子性、一致性、隔離性、持久性

2)事務(wù)資源:

定義:可以進(jìn)行事務(wù)處理的任何事物

事務(wù)控制方法:

保證事務(wù)盡可能短(盡可能不讓事務(wù)跨越多個(gè)請(qǐng)求,跨越多個(gè)請(qǐng)求的事務(wù)稱為長(zhǎng)事務(wù));

盡可能晚打開(kāi)事務(wù)

3)減少事務(wù)隔離以提高靈活性: SQL的4種隔離級(jí)別:

可串行化的、可重復(fù)讀、讀已提交、讀未提交

不必給所有的事務(wù)設(shè)置相同的隔離級(jí)別,而應(yīng)該仔細(xì)觀察每個(gè)事務(wù)并根據(jù)每個(gè)事務(wù)具體情況來(lái)決定如何權(quán)衡靈活性與正確性

4)業(yè)務(wù)事務(wù)和系統(tǒng)事務(wù): 系統(tǒng)事務(wù):

由關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)和事務(wù)監(jiān)視器所支持的事務(wù) (一般不用干預(yù))

業(yè)務(wù)事務(wù):

簡(jiǎn)單辦法:在單個(gè)系統(tǒng)事務(wù)中執(zhí)行完整的業(yè)務(wù)事務(wù)(產(chǎn)生長(zhǎng)系統(tǒng)事務(wù));

復(fù)雜的,采用離線并發(fā)(通過(guò)工作單元來(lái)保存更新數(shù)據(jù))

6. 離線并發(fā)控制的模式:

樂(lè)觀離線鎖、悲觀離線鎖

7. 應(yīng)用服務(wù)器并發(fā):

每會(huì)話一線程 VS 每會(huì)話一進(jìn)程:線程節(jié)省資源,但創(chuàng)建和進(jìn)入隔離區(qū)很重要

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/30044.html

相關(guān)文章

  • 五天-企業(yè)應(yīng)用架構(gòu)模式-分布模式

    摘要:遠(yuǎn)程外觀運(yùn)行機(jī)制使用時(shí)機(jī)數(shù)據(jù)傳輸對(duì)象運(yùn)行機(jī)制使用時(shí)機(jī)進(jìn)一步閱讀 1.遠(yuǎn)程外觀 (Remote Facade) 1.1運(yùn)行機(jī)制 1.2使用時(shí)機(jī) 2.數(shù)據(jù)傳輸對(duì)象 (Data Transfer Object) 2.1 運(yùn)行機(jī)制 2.2 使用時(shí)機(jī) 2.3 進(jìn)一步閱讀

    iamyoung001 評(píng)論0 收藏0
  • HTML

    摘要:目前,中關(guān)村黑馬程序員訓(xùn)練營(yíng)已成長(zhǎng)為行業(yè)學(xué)員質(zhì)量好課程內(nèi)容深企業(yè)滿意的移動(dòng)開(kāi)發(fā)高端訓(xùn)練基地,并被評(píng)為中關(guān)村軟件園重點(diǎn)扶持人才企業(yè)。黑馬程序員的學(xué)員篩選制度,遠(yuǎn)比現(xiàn)在以上的企業(yè)招聘流程更為嚴(yán)格。系統(tǒng)的學(xué)習(xí)可以參考w3c的教程 web概念概述 * JavaWeb: * 使用Java語(yǔ)言開(kāi)發(fā)基于互聯(lián)網(wǎng)的項(xiàng)目 * 軟件架構(gòu): 1. C/S: Client/Server 客戶端/服務(wù)...

    Snailclimb 評(píng)論0 收藏0
  • 五天 JavaScript單線程詳解

    摘要:若以多線程的方式操作這些,則可能出現(xiàn)操作的沖突。另外,因?yàn)槭菃尉€程的,在某一時(shí)刻內(nèi)只能執(zhí)行特定的一個(gè)任務(wù),并且會(huì)阻塞其它任務(wù)執(zhí)行。瀏覽器事件觸發(fā)線程事件觸發(fā)線程,當(dāng)一個(gè)事件被觸發(fā)時(shí)該線程會(huì)把事件添加到任務(wù)隊(duì)列的隊(duì)尾,等待引擎的處理。 首先,說(shuō)下為什么 JavaScript 是單線程? 總所周知,JavaScript是以單線程的方式運(yùn)行的。說(shuō)到線程就自然聯(lián)想到進(jìn)程。那它們有什么聯(lián)系呢? ...

    caiyongji 評(píng)論0 收藏0
  • 十一天-《企業(yè)應(yīng)用架構(gòu)模式》-對(duì)象-關(guān)系行為模式

    摘要:工作單元用于維護(hù)受業(yè)務(wù)事務(wù)影響的對(duì)象列表,并協(xié)調(diào)變化的寫(xiě)入和并發(fā)問(wèn)題的解決。工作單元控制器工作單元控制所有數(shù)據(jù)庫(kù)的讀操作,一旦對(duì)象被讀取,將將它注冊(cè)為干凈的對(duì)象。 1. 工作單元 用于維護(hù)受業(yè)務(wù)事務(wù)影響的對(duì)象列表,并協(xié)調(diào)變化的寫(xiě)入和并發(fā)問(wèn)題的解決。如下: showImg(https://segmentfault.com/img/remote/1460000018095222?w=162...

    KavenFan 評(píng)論0 收藏0
  • 從小白程序員一路晉升為大廠高級(jí)技術(shù)專家我看過(guò)哪些書(shū)籍?(建議收藏)

    摘要:大家好,我是冰河有句話叫做投資啥都不如投資自己的回報(bào)率高。馬上就十一國(guó)慶假期了,給小伙伴們分享下,從小白程序員到大廠高級(jí)技術(shù)專家我看過(guò)哪些技術(shù)類書(shū)籍。 大家好,我是...

    sf_wangchong 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<