版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、如今,多核處理器發(fā)展迅猛,促使多線程的應(yīng)用越來越廣泛。多線程程序雖然提高了運行速度和資源利用率,但是程序中極易含有并發(fā)錯誤。現(xiàn)有的針對多線程程序的研究或工具主要集中在并發(fā)錯誤的檢測上。然而,無論是工具檢測出的錯誤還是錯誤報告中用戶提交的錯誤,被發(fā)現(xiàn)后都需要程序員參與調(diào)試。
調(diào)試是軟件開發(fā)過程中不可或缺的一個重要環(huán)節(jié)。對于單線程程序而言,程序員可以通過設(shè)置斷點或者輸出日志等方式進(jìn)行調(diào)試。而對多線程程序而言,這些方式都不再適用,由
2、于線程的調(diào)度由調(diào)度器決定,存在著調(diào)度的不確定性,故而不同的線程調(diào)度可能產(chǎn)生不同的結(jié)果,這給多線程程序的調(diào)試帶來了很大困難。因此,程序員對于可靠的多線程程序的調(diào)試技術(shù)的需求越來越迫切。為調(diào)試多線程程序,最重要的在于控制程序執(zhí)行時多線程的調(diào)度,即在程序中插入控制代碼。最初,程序員會在源代碼中添加Thread.sleep(),這仍然是目前使用最為廣泛的控制調(diào)度的方式之一。有時候,程序員也會通過在源代碼中添加Object.wait()/noti
3、fy()這樣的代碼以達(dá)到控制線程調(diào)度的目的。然而,這兩種方式都存在弊端,容易造成錯誤的誤報或者漏報。近些年,研究者提出了如ConAn、MultithreadedTC、IMunit等這類測試框架,但它們并不易于程序員使用,并且隨著多線程程序的錯誤越來越復(fù)雜,現(xiàn)有的技術(shù)已經(jīng)不能滿足程序員的調(diào)試需求。
本研究對實際項目中發(fā)生的多線程錯誤進(jìn)行了分析,總結(jié)出四種程序員可能面臨的多線程程序調(diào)試場景:基于行的一般性線程切換、控制邏輯運算符間
4、的線程切換、控制函數(shù)調(diào)用鏈間的線程切換、以及控制循環(huán)相關(guān)的線程切換。為了幫助程序員對這四類多線程程序進(jìn)行調(diào)試,本文定義了順序點這一概念,以及需要滿足的調(diào)度約束,提出了基于順序點的調(diào)試技術(shù),并設(shè)計了針對多線程程序調(diào)試場景的領(lǐng)域特定語言。本研究采用了字節(jié)碼層面而非源代碼層面的代碼插樁技術(shù),從而達(dá)到讓線程按照期望的順序調(diào)度的目的,并且對線程的調(diào)度控制更加靈活和精準(zhǔn)。
基于上述方法,本研究最終實現(xiàn)了一個Eclipse上的調(diào)試插件,利用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于java的多線程下載工具的實現(xiàn)
- 基于JAVA的多線程下載工具的實現(xiàn).doc
- java多線程編程詳解
- 基于Java字節(jié)碼的多線程數(shù)據(jù)競爭檢測方法研究及工具實現(xiàn).pdf
- java多線程與線程安全實踐-基于http協(xié)議的斷點續(xù)傳
- AOP在JAVA多線程監(jiān)控中的應(yīng)用.pdf
- java多線程,集合框架(附簡單代碼)
- 嵌入式多線程遠(yuǎn)程調(diào)試器研究與實現(xiàn).pdf
- 多線程確定性可回溯調(diào)試系統(tǒng)的研究與實現(xiàn).pdf
- 嵌入式aCoral多線程調(diào)試器的研究與實現(xiàn).pdf
- 多線程環(huán)境下Wattch工具的移植與功耗仿真研究.pdf
- android開發(fā)中多線程與ui更新
- 變電站仿真培訓(xùn)系統(tǒng)開發(fā)與調(diào)試工具的研究.pdf
- 基于多線程技術(shù)的虛擬測控平臺研究與開發(fā).pdf
- 基于Java多線程的有限元并行計算的研究.pdf
- DSP內(nèi)存讀取調(diào)試工具的研究與實現(xiàn).pdf
- 基于JAVA的多線程下載工具的實現(xiàn)畢業(yè)設(shè)計任務(wù)書.doc
- 異步多線程網(wǎng)絡(luò)并發(fā)控制系統(tǒng)的研究與開發(fā).pdf
- 基于MES的JAVA多線程處理大數(shù)據(jù)模塊的設(shè)計與實現(xiàn).pdf
- 交叉編譯和交叉調(diào)試工具的研究與實現(xiàn).pdf
評論
0/150
提交評論