亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        并發(fā)Java程序動態(tài)分析及重演技術(shù)研究

        2014-12-31 00:00:00王宏

        摘 要:由于Java程序的應(yīng)用范疇越來越廣,這就需要我們對其程序的應(yīng)用與運作加以合理地了解與分析,本文主要通過對Java這種程序在實際的并發(fā)程序中的應(yīng)用情況予以動態(tài)的分析與闡述,并對其予以技術(shù)的重演方面進(jìn)行系統(tǒng)性的分析與探索,能夠推動Java程序本身的發(fā)展。

        關(guān)鍵詞:Java程序;并發(fā)程序;動態(tài)分析;重演技術(shù);研究

        中圖分類號:TP312

        由于我國在科技領(lǐng)域發(fā)展的腳步不斷深化,促使對Java程序的應(yīng)用得以廣泛性的應(yīng)用,其并發(fā)的Java程序也在一定程度上得以新的推廣與應(yīng)用,這樣一來對并發(fā)程序的系統(tǒng)性動態(tài)分析就成了必然。我們能夠根據(jù)Java語言的特點對其予以系統(tǒng)性的分析與闡釋,并對其在分析與設(shè)計方面予以動態(tài)性的測試,推動Java語言與程序在我國現(xiàn)階段的應(yīng)用與發(fā)展能夠得以更好的發(fā)展平臺與愿景。

        1 有關(guān)并發(fā)Java程序動態(tài)分析的闡述

        通常情況下,并發(fā)程序會在其運行的過程中,進(jìn)行多個事件,或者一個事件的同步執(zhí)行,并且對其予以順序上的編制,附之以“同步序列”的名稱。這些同步序列的科學(xué)運行,能夠?qū)︻A(yù)期中的運行過程予以關(guān)鍵性的決定作用。

        在對并發(fā)Java程序進(jìn)行動態(tài)的分析實驗中,將P設(shè)置為并發(fā)程序,這時如果出現(xiàn)某同步序列被執(zhí)行的現(xiàn)象,就說明P可能在執(zhí)行輸入A的操作,這種情況就能夠說該同步序列對輸入為A的并發(fā)程序,是可行的。若依托于并發(fā)程序的源程序正常作用的情況下,某同步序列被預(yù)測成,在執(zhí)行輸入A的時候P執(zhí)行的同步序列程序,就能夠說該同步序列是對輸入A的這一并發(fā)程序的操作是有效的。如下方案進(jìn)行分析與闡述:

        1.1 對并發(fā)Java程序的測試分析

        在實際的并發(fā)Java程序的測試中,通常都是依托于兩種方法進(jìn)行測試,一是對并發(fā)程序的不確定性進(jìn)行的測試,一是對并發(fā)程序的確定性進(jìn)行的測試。

        在對并發(fā)程序的不確定性進(jìn)行的測試中,需要按照一定的步驟進(jìn)行測試工作的展開,需要為并發(fā)程序P選好一組進(jìn)行輸入,在測試的過程中,需要將選擇好的輸入A的每個數(shù)據(jù),予以P的多次運行,并對所有的運行結(jié)果進(jìn)行比較,主要是將其同預(yù)期結(jié)果的比較。當(dāng)同一輸入A時,并發(fā)程序P需要進(jìn)行多次的運行,這樣一來P就能夠執(zhí)行不同類型的,具有可行性的同步并發(fā)程序,與此同時其對發(fā)現(xiàn)錯誤的功能也予以一定程度的提升。

        在對并發(fā)程序予以確定性的測試中,需要在眾多的數(shù)據(jù)中選擇一組為例,并對每組需要測試的數(shù)據(jù)都予以形如(A,S)的輸入,需要注明的是A是對并發(fā)程序的輸入數(shù)據(jù),而S則是對并發(fā)程序的同步序列。對測試中的每組選擇(A,S)的數(shù)據(jù)進(jìn)行適當(dāng)?shù)胤治?。在實際的測試中,需要P進(jìn)行A的輸入操作,并依照同步序列進(jìn)行高速的運轉(zhuǎn)工作,通過這種方法能夠?qū)Σl(fā)程序的同步序列予以可行性的測試。對其產(chǎn)生的結(jié)果進(jìn)行預(yù)期的比較,如果不同就能夠確定其發(fā)現(xiàn)錯誤。確定性測試比不確定性測試在產(chǎn)生的結(jié)果上要更優(yōu),其能夠?qū)尚械木哂杏行У呐c非有效的同步序列予以發(fā)現(xiàn)。

        1.2 構(gòu)造并發(fā)程序動態(tài)分析方案的闡述與分析

        在實際構(gòu)造并發(fā)程序動態(tài)分析中,通常是予以兩種方法進(jìn)行分析,一種是建立在實現(xiàn)的基礎(chǔ)上,一種則是建立在語言方面上的方法分析。

        圖1 Java線程圖示

        針對建立在實現(xiàn)的基礎(chǔ)上的方法,其所需要的程序需要依托于編譯器與運行的環(huán)境,以及操作系統(tǒng)本身這三方進(jìn)行并發(fā)程序的實現(xiàn)。在實際的操作中,我們可以通過對其予以相應(yīng)的變動,就能并發(fā)程序的同步序列的運行。比如:在現(xiàn)實的工作中,建立在實現(xiàn)基礎(chǔ)上的現(xiàn)代化工具,能夠予以程序員設(shè)置斷點與選擇執(zhí)行程序的權(quán)利,并依托于一定的方法對程序的運行予以合理的控制。

        針對建立在語言上的方法,需要其能夠?qū)φZ言程序予以了解,并依托于語言并發(fā)程序,對同步序列予以形式的外衣做包裹,并對同步序列予以合理地定義。與此同時,需要其能夠?qū)ν叫蛄杏枰允占姆绞綄ζ溥M(jìn)行相應(yīng)的記錄。在重演同步序列環(huán)節(jié),需要對被測的并發(fā)程序予以合理與適當(dāng)?shù)馗膭?,促使在對程序進(jìn)行輸入操作的同時,能夠依托于同步序列進(jìn)行科學(xué)地運作。這個過程中的S均是通過同步序列這一收集工具在實際的程序輸入中獲得的數(shù)據(jù)。

        在進(jìn)行動態(tài)分析的過程中,其會依托于程序的框圖進(jìn)行實際的應(yīng)用,利用各種語言程序加以動態(tài)的信息輸送,促使其能夠在Java程序動態(tài)的運行中,對數(shù)據(jù)進(jìn)行實時性地變更,推動整個程序的正常運轉(zhuǎn)。

        2 對Java語言在同步機(jī)制方面的闡述與分析

        通常情況下Java語言的同步機(jī)制具有監(jiān)控器的功用,但在實際的運行中受到了一些因素的限制與干預(yù),也就是說每個Java程序的對象有且只有一個能夠同本對象有關(guān)的條件變量。Java的對象一般來說都在構(gòu)建同步機(jī)制的環(huán)節(jié)予以關(guān)鍵段的設(shè)置,通常都是以鎖的形式進(jìn)行設(shè)置。而在實際的操作中,鎖相當(dāng)于計數(shù)器的作用,當(dāng)線程進(jìn)入到同步方法的階段,其計數(shù)值就會得以相應(yīng)的增加,而當(dāng)線程退出同步方法時,計數(shù)值就會予以相應(yīng)地減少。但是在Java程序的執(zhí)行與操作中,還可能發(fā)生線程被阻塞的問題,并能夠通過一定的條件對其進(jìn)行喚醒工作的設(shè)置,通常情況下這種功用都是基于Object系統(tǒng)之中的notify()、wait(),以及notifall()等方法中的。對Java程序的操作中,其每一個實例的對象都需要擁有相關(guān)的等待集合,這個等待集合是一個線程集合,并且其初始值為0。當(dāng)對其進(jìn)行口令的調(diào)用時,就需要其能夠依托于口令的特殊方法對線程進(jìn)行實例對象的添加,并對其進(jìn)行同步鎖的釋放過程,當(dāng)其他的線程都調(diào)用實例對象方法就可以完成這一環(huán)節(jié)的執(zhí)行工作。與此同時,特殊口令就能夠?qū)x擇性的對線程予以喚醒工作的執(zhí)行,并且其選擇不具有特定性與規(guī)律性。

        圖2

        3 對Safepro/java線程的測試技術(shù)予以科學(xué)地闡述與分析

        一般來說,Java語言程序具有靈活性的特征,尤其是其提供的線程技術(shù)更是將這一特點予以很好地闡釋,能夠?qū)Τ绦虻墓δ苡枰砸欢ǔ潭鹊膹?qiáng)化,但是這種靈活性的特征對實際的程序操作人員來說就是能力的高要求與高標(biāo)準(zhǔn)。這一環(huán)節(jié)就需要程序員能夠依托于正確的同步策略對死鎖問題予以順利地規(guī)避,并能夠?qū)﹀e誤的發(fā)現(xiàn)予以實時地排錯工作,這就需要Safepro/Java線程的測試。

        3.1 對線程的包裝

        在Java程序的執(zhí)行中,創(chuàng)建Thread類,以及Thread子類在實例生成中都需要程序中的每個線程予以完成的工作。通常情況下,Thread類中有許多用于管理線程的實踐方法,這就促使動態(tài)分析能夠合理與科學(xué)地進(jìn)行。

        在實際的動態(tài)分析中,需要程序中的每一個線程都對自身相關(guān)的數(shù)據(jù)與信息予以保留,比如:線程的狀態(tài)轉(zhuǎn)移問題與動態(tài)標(biāo)識等都需要予以保留。在處理程序中的數(shù)據(jù)與信息時,需要依托于面向?qū)ο蟮囊环N繼承機(jī)制進(jìn)行集成系統(tǒng)類Thread測試的創(chuàng)建,這樣一來傳統(tǒng)靜態(tài)測試中的Thread就會被相應(yīng)地替換為JKThread,這樣一來接下來的程序應(yīng)用就會通過JKThread進(jìn)行實際的運行,并能夠從其中將包裝層所具有的特性予以獲取,能夠在其中進(jìn)行動態(tài)標(biāo)識的分配工作的實現(xiàn)。這樣一來就能夠?qū)KThread類中的Thread類予以函數(shù)的構(gòu)造,并對用戶的動態(tài)線程配置以唯一性的要求。與此同時,還能夠?qū)χ剌d的Thread類進(jìn)行管理線程方法的應(yīng)用,比如:start()、yield()等方法的應(yīng)用,這樣一來就能夠?qū)τ脩舻木€程狀態(tài)予以跟蹤式的檢查與轉(zhuǎn)移。在對并發(fā)Java程序的動態(tài)分析中,還可以通過將插樁線程中的探針用于中間層的方法,這樣一來就能夠相應(yīng)地減少對用戶在程序方面的修改與改動,從而能夠?qū)討B(tài)的程序分析予以透明性的特征,對用戶的線程予以動態(tài)性的分析。但是這種方法的應(yīng)用不能滿足于所有的線程,比如:在Java程序的實際運行中,其中有個JVM能夠自動地創(chuàng)建一條main線程,但這條線程并沒有完整的名稱,在實際運行當(dāng)中這條線程不能通過JThreadInst進(jìn)行包裝環(huán)節(jié)的。還有一種情況就是當(dāng)在Java程序中的GUI環(huán)境中進(jìn)行動態(tài)分析時,系統(tǒng)會為其設(shè)置與創(chuàng)建一個點擊按鈕式的外部事件線程,這個線程設(shè)計也是無法通過JThreadInst進(jìn)行包裝,因此對并發(fā)Java程序的動態(tài)分析需要予以具體情況,具體分析的特征進(jìn)行適時合理分析與處理。

        3.2 對同步序列的定義

        在實際的Java語言程序中,其同步機(jī)制能夠囊括同步方法中的所有實例對象,并將其視作監(jiān)控器的功用,這就是同步對象的定義。通常情況下,同步序列主要是由同步事件構(gòu)成的,這就需要我們對并發(fā)Java程序里同步事件的類型進(jìn)行定義與分析。

        一般來說,在并發(fā)Java程序中的同步事件類型共有四種,分別是線程開始執(zhí)行的同步方法或者同步塊、線程執(zhí)行的同步方法或者是同步塊、線程在同比方法或者同步塊中執(zhí)行的wait()操作、在同步方法或者同步塊中執(zhí)行的notify()與notifyall()操作等的線程這四種類型。

        3.3 對同步序列的收集和重演的闡述與分析

        在對并發(fā)Java程序的動態(tài)分析中,需要我們能夠考慮到并發(fā)程序中所要訪問的同步對象的數(shù)據(jù)與信息,并且這些數(shù)據(jù)與信息通常情況下都是以能夠訪問的形式進(jìn)行儲存的。一般情況下,對同步序列的收集與重演都需要依托于一定的方法進(jìn)行實際的運作。

        4 結(jié)束語

        就現(xiàn)階段而言,并發(fā)Java程序能夠被應(yīng)用于社會中的各個領(lǐng)域之中,這就需要我們對其進(jìn)行程序的動態(tài)分析,能夠?qū)ζ鋵嶋H的工作特點與運行系統(tǒng)予以系統(tǒng)性的了解與分析。這樣一來并發(fā)Java程序就能夠在實際的生活與工作中予以新的創(chuàng)新與發(fā)展,能夠推動我國科學(xué)技術(shù)領(lǐng)域的繁榮發(fā)展。

        參考文獻(xiàn):

        [1]周志遠(yuǎn),張大方,繆力.對Java并發(fā)程序進(jìn)行模型檢測[J].計算機(jī)工程與設(shè)計,2012(02).

        [2]王艷臣,李必信,戴君.基于擴(kuò)展同步序列的Java多線程程序可達(dá)性測試方法[J].東南大學(xué)學(xué)報(自然科學(xué)版),2013(06).

        [3]華衛(wèi)中,趙春云.Java線程的深入探討[J].計算機(jī)系統(tǒng)應(yīng)用,2012(07).

        [4]唐建清,鄒國霞.操作系統(tǒng)中“閱覽室”問題的JAVA實現(xiàn)[J].桂林航天工業(yè)高等??茖W(xué)校學(xué)報,2013(04).

        作者簡介:王宏(1977-)女,遼寧彰武人,本科,講師,主要研究方向:計算機(jī)教學(xué)。

        作者單位:彰武縣中等職業(yè)技術(shù)專業(yè)學(xué)校,遼寧彰武 123200

        亚洲一区二区视频蜜桃| 亚洲欧洲无码一区二区三区| 国产成人精品午夜福利在线| 蜜桃伦理一区二区三区| 91精品啪在线观九色| 香港三日本三级少妇三级视频| 欧美真人性做爰一二区| 国产360激情盗摄一区在线观看| 丝袜美腿精品福利在线视频| 日本中国内射bbxx| 亚洲精品久久久久久| 超级碰碰人妻中文字幕| 少妇又骚又多水的视频| av色欲无码人妻中文字幕| 亚洲最全av一区二区| 久久精品噜噜噜成人| av无码天一区二区一三区| 国产精品久久熟女吞精| 午夜视频在线瓜伦| 内射囯产旡码丰满少妇| 久久天堂av色综合| 成人国产av精品麻豆网址| 狠狠97人人婷婷五月| 香蕉久久久久久久av网站| 无码中文字幕专区一二三| 精彩视频在线观看一区二区三区| 性做久久久久久久| 国产成人午夜精品免费视频| 色婷婷久久99综合精品jk白丝| 一本大道道久久综合av| 麻豆果冻传媒在线观看| 亚洲欧美日韩国产精品一区| 国产人妖在线观看一区二区三区 | 中文字幕一区二区在线| 伊人久久大香线蕉av不变影院| 性高朝久久久久久久| 大陆啪啪福利视频| 开心久久综合婷婷九月| 疯狂撞击丝袜人妻| 一区二区三区福利在线视频| 色婷婷久久综合中文蜜桃|