成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

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

linkFly / 2201人閱讀

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

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

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

請求:

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

會話:

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

2)操作系統(tǒng)的2個語境: 進程:

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

線程:

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

3. 隔離與不變性:

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

1)隔離: 方案1:

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

方案2:

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

2)不變性: 方案1:

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

方案2:

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

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

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

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

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

悲觀鎖:

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

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

缺點:用戶體驗差

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

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

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

樂觀策略:

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

b. 時序讀:

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

3)死鎖:

處理死鎖的方法:

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

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

防止死鎖的方法:

強制人們在開始工作時就獲得所有可能需要的鎖,在此之后就不再允許得到更多的鎖;

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

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

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

2)事務(wù)資源:

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

事務(wù)控制方法:

保證事務(wù)盡可能短(盡可能不讓事務(wù)跨越多個請求,跨越多個請求的事務(wù)稱為長事務(wù));

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

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

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

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

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

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

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

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

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

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

樂觀離線鎖、悲觀離線鎖

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

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

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

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/30044.html

相關(guān)文章

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

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

    iamyoung001 評論0 收藏0
  • HTML

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

    Snailclimb 評論0 收藏0
  • 五天 JavaScript單線程詳解

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

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

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

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

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

    sf_wangchong 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<