版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
線程同步主要內(nèi)容競爭狀態(tài)、線程安全的、臨界區(qū)線程同步同步方法、同步塊利用顯式加鎖同步線程線程沖突如果一個共享資源被多個線程同時訪問,可能會遭到破壞。案例——線程沖突假設(shè)創(chuàng)建并啟動100個線程,每個線程通過deposit方法向同一個賬戶上存1元錢。請問該賬戶上有多少錢?100。不是,原因?競爭狀態(tài)任務1和任務2以一種會引起沖突的方式訪問一個共享資源,這稱為競爭狀態(tài)。線程安全的vs.線程不安全的如果一個類的對象在多線程程序中沒有導致競爭狀態(tài),則稱這樣的類是線程安全的。如果一個類的對象在多線程程序中導致競爭狀態(tài),則稱這樣的類是線程不安全的。臨界區(qū)為避免競爭狀態(tài),應該防止多個線程同時進入程序的某一特定部分。程序中這樣一部分稱作臨界區(qū)。示例中的臨界區(qū)是deposit存款方法臨界區(qū)加鎖和解鎖為保證臨界區(qū)中的代碼在一段時間內(nèi)只被一個線程執(zhí)行,應在線程開始執(zhí)行臨界區(qū)代碼時,給臨界區(qū)加鎖。這樣,其他線程在這個臨界區(qū)被解鎖之前,無法執(zhí)行臨界區(qū)的代碼,在臨界區(qū)被解鎖之后,其他線程才可以鎖定并執(zhí)行其中的代碼。線程同步線程同步用于協(xié)調(diào)相互依賴的線程的執(zhí)行。內(nèi)在鎖Java的每個對象都有一個內(nèi)在鎖,有時也稱作監(jiān)視器鎖。獲得對象的內(nèi)在鎖是能夠獨占該對象訪問權(quán)的一種方式。同步代碼塊Java通過同步代碼塊實現(xiàn)內(nèi)在鎖,Java支持兩種同步:1)方法同步2)塊同步方法同步就是在定義方法時使用synchronized關(guān)鍵字。同步方法使用一個同步方法在執(zhí)行之前都隱式地需要加鎖。鎖是一種實現(xiàn)資源排他使用的機制。同步方法隱式鎖的使用調(diào)用一個對象上的同步實例方法,需要給該對象加鎖。調(diào)用一個類上的同步靜態(tài)方法,需要給該類加鎖。然后執(zhí)行該方法,最后解鎖。在解鎖之前,另一個調(diào)用該對象(或該類)中方法的線程將被阻塞,直到解鎖。同步deposit方法同步塊當執(zhí)行方法中的某一個代碼塊時,同步語句不僅可用于對this對象加鎖,而且可用于對任何對象加鎖。這個代碼塊稱為同步塊。同步塊同步語句的一般形式:synchronized(this或?qū)ο?{ statements;}注意任何同步的實例方法都是可以轉(zhuǎn)換為同步語句。publicsynchronizedvoidxMethod(){ //方法體}public
voidxMethod(){
synchronized(this){ //方法體 }}利用顯式加鎖同步線程一個鎖是一個Lock接口的實例。它定義了加鎖和釋放鎖的方法。ReentrantLock是Lock的一個具體實現(xiàn)。利用顯式加鎖同步線程創(chuàng)建鎖Locklock=new ReentrantLock();獲取鎖lock.lock();釋放鎖lock.unlock();案例——賬戶存錢使用三種方法實現(xiàn)線
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高職攝影(攝影史)試題及答案
- 2025年高職新能源汽車檢測與維修(充電樁維護)試題及答案
- 2025年大學三年級(勞動與社會保障)醫(yī)療保險管理基礎(chǔ)測試題及答案
- 2025年大學大一(心理學基礎(chǔ))社會心理學試題及答案
- 大學(生物學)遺傳學基礎(chǔ)2026年試題及答案
- 2025年大學林業(yè)信息工程(林業(yè)信息技術(shù)研發(fā))試題及答案
- 2025年大學醫(yī)學影像檢查技術(shù)基礎(chǔ)(檢查技術(shù)認知)試題及答案
- 2025年高職中藥類(中藥趨勢分析)試題及答案
- 2025年高職計算機應用技術(shù)(數(shù)據(jù)庫應用開發(fā))試題及答案
- 2025年高職(工藝美術(shù)品設(shè)計)工藝品包裝設(shè)計試題及答案
- 護理部年度述職報告
- 2026青海果洛州久治縣公安局招聘警務輔助人員30人筆試模擬試題及答案解析
- 湖南名校聯(lián)考聯(lián)合體2026屆高三年級1月聯(lián)考數(shù)學試卷+答案
- 2025-2030中國環(huán)保產(chǎn)業(yè)市場動態(tài)及投資機遇深度分析報告
- 山東省煙臺市芝罘區(qū)2024-2025學年三年級上學期期末數(shù)學試題
- GB/T 6074-2025板式鏈、連接環(huán)和槽輪尺寸、測量力、抗拉載荷和動載載荷
- 護理員職業(yè)道德與法律法規(guī)
- 2025年安徽省普通高中學業(yè)水平合格性考試化學試卷(含答案)
- 2025年寧波市公共交通集團有限公司下屬分子公司招聘備考題庫及答案詳解參考
- 2026年關(guān)于汽車銷售工作計劃書
- 腫瘤放射治療的新技術(shù)進展
評論
0/150
提交評論