国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Java同步線程模型分析與改進研究

2014-07-28 05:10:25鐘健
電腦知識與技術(shù) 2014年18期
關(guān)鍵詞:改進

鐘健

摘要:目前狀況下,隨著經(jīng)濟的迅速發(fā)展以及科學(xué)技術(shù)水平的不斷提高,我國的計算機科學(xué)技術(shù)取得了較大程度上的發(fā)展,為我國國民經(jīng)濟的提高做出重要貢獻。眾所周知,計算機科學(xué)技術(shù)的發(fā)展與語言編程機制的逐步發(fā)展與完善莫不可分。Java語言編程機制便是其中的重要一種,隨著它的不斷發(fā)展與改進,目前狀況下它已經(jīng)在計算機語言中有了十分廣泛的運用。該文主要針對Java同步線程模型分析與改進進行研究與分析。

關(guān)鍵詞:Java語言編程機制;線程模型;改進

中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2014)18-4178-02

1 Java同步線程模型分析

對于Java語言編程機制而言,當(dāng)它與同步線程模型進行了一定程度上的結(jié)合之后,能夠?qū)ζ湎到y(tǒng)并發(fā)執(zhí)行程度進行較大幅度的提高,也就是說在原先的編程機制基礎(chǔ)之上進一步的發(fā)展與提高。之前,在原先的Java編程機制之中存在著一定的弊端與局限性,這些問題的存在阻礙了Java編程機制的進一步發(fā)展,然而,自從在Java之中引入了同步線程模型之后,原先所存在的問題就能夠得到一定程度上的控制。我們將同步線程模型與多進程模式進行一定程度上的對比分析,發(fā)現(xiàn)相比于多進程模式,前者能夠發(fā)揮出更大的優(yōu)越性,兩者之間的差異性也能很明顯的表現(xiàn)出來。兩者之間的差異性主要表現(xiàn)在如下幾個方面:對于進程而言,它的兩個單位之間是相互分開的,而對于線程而言,它的每個執(zhí)行單元具有一定程度的獨立性,從客觀的角度來說,實現(xiàn)獨立調(diào)整已經(jīng)不是問題,而是成為了一種非常熟練的工作。另一方面,通過技術(shù)上進步,各自分派也成為可能,每個進程都可以稱之為獨立出來的控制流,雖然在一定程度上具有了獨立性,但從實質(zhì)上來看,它并不是可獨立擁有資源的基本單位。從這方面來看,在實際的操作當(dāng)中,能夠?qū)崿F(xiàn)對獨立擁有資源的單位頻率進行切換,而且操作頻率有所降低。進程并發(fā)的執(zhí)行存在著兩個十分必要的條件,這兩個必要的條件分別害死可擁有資源的獨立單位以及可獨立調(diào)度及分派的基本單位。在傳統(tǒng)的操作系統(tǒng)之中,這兩項屬性得到了切實體現(xiàn)。值得注意的是,總體進程之中,兩種屬性成為了一種非常堅實的基礎(chǔ),為進程的并發(fā)執(zhí)行提供了強大的動力。還有就是,為了全面提高程序并發(fā)執(zhí)行的有效性,有一部分的操作仍然只能夠在系統(tǒng)中進行實時,這些操作主要有創(chuàng)建以及撤銷等。對于一項資源的擁有者而言,在資源之中,對于不同的進程而言,它所具有的內(nèi)存空間堆棧等也存在著一定程度上的差異?;诖?,當(dāng)系統(tǒng)在對這一系列的操作進行執(zhí)行時,必須將這一情況納入到考慮范圍之內(nèi),騰出更大的空間。所以,在對系統(tǒng)進行設(shè)置時,對于進程數(shù)目的設(shè)定要求能夠滿足相應(yīng)的標(biāo)準(zhǔn),在對進程進行切換時也應(yīng)該控制好次數(shù)。也就是說,從這一方面來看,這對進程并發(fā)更深層次的發(fā)展造成了一定程度上的阻礙作用。然而,對于Java同步線程模式而言,其難點主要集中在如何采取有效措施對并發(fā)程序設(shè)計中所出現(xiàn)的一系列問題進行合理而有效的解決。

一般情況下,在進行操作的過程之中,可以對線程進行一定程度的聯(lián)想,將線程當(dāng)做是程序當(dāng)中的某個控制流程。如果是從固有系統(tǒng)角度出發(fā),多數(shù)情況僅僅會存在和一個程度的控制流程,且這種控制流程具有相應(yīng)的循環(huán)性,因此在原先的操作系統(tǒng)之后總,對于流程的執(zhí)行職能按部就班,一步一步來完成,這種環(huán)境我們可以將之稱作為單線程,無疑單線程的執(zhí)行效率是相對較低的。近幾年來,隨著科學(xué)技術(shù)水平的不斷進步,在原先的操作系統(tǒng)的基礎(chǔ)之上引進了新技術(shù),取得了較大程度上的進步,Java多線程模式便是其中一種典型技術(shù)。隨著多線程模式的引入,原先的單線程模式也逐步淡出人們的視線。新型的Java多線程模式可以大幅提高執(zhí)行效率,它不僅可以對程序的執(zhí)行進行有效的支持,同時又能夠?qū)Χ鄠€控制流程進行流暢操作。

一般情況下,在對Java多線程模式進行操作的過程之中,會出現(xiàn)兩條控制線程,且這兩條控制線程具有一定的特殊性,這兩條控制線程存在于操作程序之中,且兩者所執(zhí)行的任務(wù)不同,一條線程的職責(zé)是對用戶事件進行一定程度上的處理,而另一條線程作用是進行分析運算。值得注意的是,一般情況下處理器僅僅只有一個個時,也就是說線程是難以進行同時處理的,兩條線程的執(zhí)行之間必須存在著一定的空隙,如果其中一條線程正在等待對相關(guān)數(shù)據(jù)進行獲取時,則系統(tǒng)就會自動進行線程的切換。正是由于這一原因,在對多線程模式進行引入之后,需要與計算機處理器個數(shù)組合。

2 Java同步進程模型改進的嘗試

對于Java編程語言而言,從整體角度上來看,線程模型正是其“軟肋”,因為Java編程語言中的線程模型與實際情況的適應(yīng)度較低,而且它所面對的對象相對狹窄,不能做到面面俱到。除此之外,Java語言的優(yōu)勢在于,其線程模型的滿意度較高,能夠?qū)崿F(xiàn)很多的功能,減少了客觀上的影響。從綜合的角度來分析,Java作為一種編程語言,其線程模型仍然存在著諸多的缺陷,這些缺陷的存在阻礙了其進一步的發(fā)展。因此,采取有效措施對Java同步進程模型的改進十分重要。

而要想有效解決Java同步線程模型所存在的額缺陷,處理數(shù)據(jù)死鎖是重中之重,就死鎖本身來說,它的形成,主要是兩個或者是兩個以上的線程,互相之間的無限制等待情況,最終結(jié)果就是,兩個線程都沒有辦法執(zhí)行任務(wù),那么這一狀態(tài)就被稱作為死鎖狀態(tài)。在Java同步線程之中,為了應(yīng)對這一問題,通過對synchronized 關(guān)鍵詞進行一定程度上的使用,并在此基礎(chǔ)之上實現(xiàn)對于對象的鎖操作。當(dāng)鎖操作完成之后,之前所運用的synchronized 關(guān)鍵詞語句便能夠得到有效的執(zhí)行,除了以上的闡述之外,語句執(zhí)行結(jié)束后,無論系統(tǒng)判定為正常也好、不正常也好,解鎖操作都會自動完成。

一般情況下,對于并發(fā)線程而言,它們會對程序中的資源進行一定程度上的競爭,針對這一情況,必須采取措施對程序當(dāng)中的共享資源進行有效而均衡的分配,從而達到線程在執(zhí)行程序的過程之中能夠?qū)τ邢薜馁Y源進行充分利用的效果。在Java之中,并不存在專門為死鎖提供檢測的程序。所以,對于Java程序員而言,就必須認真處理死鎖的相關(guān)程序。一般情況下,對于線程程序而言,很多都是可以對其進行歸納總結(jié)的,如果兩個或兩個以上的線程彼此之間無限期的等待,最終導(dǎo)致兩個線程都無法有效的執(zhí)行任務(wù),從而造成死鎖。比如如下程序:endprint

class Printer implements Runnable {

Input input ;

synchronized void print (){

input . write ();

}synchronized void write (){

}public void run (){

print ();

};

}Printer printer;

synchronized void write (){

printer. sendData ();

}public void run (){

write ();

};

}

從以上的編程來看,不難發(fā)現(xiàn),一個對象會對應(yīng)另一個與其存在一定關(guān)聯(lián)的monitor對象,這個對象的具體作用可以用“守門人”來形容,每次僅僅允許一個synchronized 方法進入,而如果其中的一個synchronized 方法結(jié)束之后,monitor就會進行一定程度上的解鎖,此時另外一個synchronized方法便可以開始執(zhí)行。那么應(yīng)該如何采取有效措施對這一死鎖問題進行解決?其實只需要對正確線程程序進行編制,主要策略如下:首先,需要對給定的任務(wù)目標(biāo)進行有效的完成,在執(zhí)行目標(biāo)的過程中,需要注意一定的同步性,即與其他任務(wù)同時進行,通過這樣的操作,可以對每個線程完成的功能進行一定程度上的控制,并在此基礎(chǔ)之上,就沒有必要對兩個線程進行使用,因為在這一操作之后,兩者之間就存在著一定的依賴性,當(dāng)從一個 synchronized 方法中調(diào)用另一個 synchronized 方法時,要謹慎方可。

3 結(jié)束語

隨著計算機技術(shù)的逐漸發(fā)展,Java語言編程的效果已經(jīng)越來越明顯,將其引入同步線程模型,可以充分改進其中的一些弊端,將大大提高運行效率。

參考文獻:

[1] 周志遠,張大方,繆力.基于 Java 內(nèi)存模型的并發(fā)程序模型檢測[J].計算機工程與科學(xué),2010(3).

[2] 苗康,余嘯,趙吉,沈宇.基于關(guān)系演算的 Java 模式識別[J].計算機應(yīng)用研究, 2010(9).

[3] 于利前,王林章,雷斌,趙建華,李宣東.靜動態(tài)結(jié)合的 Java 程序不變性分析方法[J].計算機學(xué)報,2010(4).

[4] 喻志虎,鄒華,楊放春.Parlay應(yīng)用服務(wù)器的軟件容錯研究與設(shè)計[J].北京郵電大學(xué)學(xué)報,2004,27(增刊):12-15.

[5] HORSTMANN C S,CORNELL G.Java2核心技術(shù)(卷2):高級特性[M].陳昊鵬, 王浩,姚建平,等,譯.7版.北京:機械工業(yè)出版社,2006.

[6] 柴平渲,龔向陽,程時端.分布式入侵檢測技術(shù)的研究[J].北京郵電大學(xué)學(xué)報,2002,25(2):58-62.endprint

猜你喜歡
改進
蝙蝠算法的研究進展
現(xiàn)代化教學(xué)手段在語文教學(xué)中的運用
國有企業(yè)思想政治工作運行方式的幾點思考
淺析國有企業(yè)思想政治工作的改進與創(chuàng)新
督查工作改進策略研究
淺析加強和改進消防產(chǎn)品的監(jiān)督管理
論離婚損害賠償制度的不足與完善
商(2016年27期)2016-10-17 06:57:20
高校安全隱患與安全設(shè)施改進研究
商(2016年27期)2016-10-17 05:02:12
“慕課”教學(xué)的“八年之癢”
淺析秦二廠設(shè)計基準(zhǔn)洪水位提升對聯(lián)合泵房的影響
科技視界(2016年20期)2016-09-29 13:36:14
东光县| 瓦房店市| 南部县| 区。| 盐亭县| 永兴县| 泰安市| 凤阳县| 左贡县| 蓝山县| 伊通| 阿拉尔市| 龙泉市| 冕宁县| 云南省| 乐东| 南宫市| 鹿泉市| 清苑县| 博湖县| 永宁县| 通许县| 沂水县| 永春县| 北安市| 青河县| 汝城县| 上杭县| 衡水市| 永城市| 夏河县| 肥西县| 张家界市| 尉犁县| 芮城县| 北碚区| 兴安盟| 海盐县| 囊谦县| 黄平县| 万山特区|