張光平
摘 要:Java是一種網(wǎng)絡(luò)編程語(yǔ)言,能夠?qū)崿F(xiàn)更好的網(wǎng)絡(luò)交互工作。而基于Java語(yǔ)言出現(xiàn)的Java多線程技術(shù)更是具有很高的現(xiàn)實(shí)意義,該技術(shù)能夠促進(jìn)各應(yīng)用程序之間實(shí)現(xiàn)有效并行。通過(guò)Java多線程技術(shù)的應(yīng)用使網(wǎng)絡(luò)應(yīng)用軟件的多端同步和終端遠(yuǎn)程交互成為了可能。本文旨在通過(guò)對(duì)Java多線程的同步機(jī)制和通信機(jī)制等模式進(jìn)行分析,闡述其相關(guān)應(yīng)用,以求實(shí)現(xiàn)對(duì)JAVA多線程的簡(jiǎn)要分析。
關(guān)鍵詞:JAVA ;多線程;同步;交互;應(yīng)用
在計(jì)算機(jī)技術(shù)不斷發(fā)展的過(guò)程中,傳統(tǒng)的只有一條執(zhí)行路線的單線程程序已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足計(jì)算機(jī)網(wǎng)絡(luò)的需求。隨著當(dāng)今互聯(lián)網(wǎng)技術(shù)的不斷加強(qiáng),數(shù)據(jù)量更大、分布范圍更廣的大數(shù)據(jù)需要進(jìn)行處理,計(jì)算機(jī)應(yīng)用程序用戶對(duì)實(shí)時(shí)分享和快速反饋的需要也在不斷提高。一個(gè)主服務(wù)器需要同時(shí)處理多個(gè)客戶端的請(qǐng)求。這就需要使Java多線程技術(shù),Java語(yǔ)言可以實(shí)現(xiàn)多個(gè)任務(wù)并行,通過(guò)多線程機(jī)制來(lái)滿足多個(gè)執(zhí)行體同時(shí)運(yùn)作,并且不會(huì)減緩運(yùn)行速度。編程人員通過(guò)Java多線程機(jī)制能夠高效、快速地開(kāi)發(fā)能夠同時(shí)處理多個(gè)項(xiàng)目的具有多線程功能的程序。
1 Java多線程機(jī)制
在多項(xiàng)線程共同處理機(jī)體系結(jié)構(gòu)不多增加的基礎(chǔ)上,編程人員要基于多線程的操作實(shí)現(xiàn)能滿足多個(gè)任務(wù)同時(shí)進(jìn)行的應(yīng)用程序,Java編程語(yǔ)言在網(wǎng)絡(luò)開(kāi)發(fā)中具有重要位置。
1.1 什么是線程
所謂線程指的是計(jì)算機(jī)在運(yùn)算過(guò)程中所使用的單一順序的控制流。通過(guò)線程的傳輸和運(yùn)算,各個(gè)終端處在相同的地址和空間的用戶能夠?qū)崿F(xiàn)交互,并能夠使得不同網(wǎng)絡(luò)終端構(gòu)成構(gòu)成一個(gè)更大的進(jìn)程。線程與線程之間的通訊是十分高效的,過(guò)程又十分簡(jiǎn)單。線程的使用可以使應(yīng)用程序的編寫更加豐富。在服務(wù)器程序的應(yīng)用中,線程的高效性就得到了很好的體現(xiàn),服務(wù)器對(duì)每個(gè)終端的請(qǐng)求會(huì)執(zhí)行一個(gè)線程,這就使得服務(wù)器能做到對(duì)不同終端的用戶指令同時(shí)進(jìn)行反應(yīng)和回饋。
1.2 Java語(yǔ)言多線程
1.1.1 對(duì)多線程的支持
Java編程語(yǔ)言能夠很大程度上對(duì)多線程進(jìn)行支持,利用Java語(yǔ)言能夠更好地實(shí)現(xiàn)多線程交互操作。Java多線程體系內(nèi)部結(jié)構(gòu)本身就內(nèi)置了多線程控制機(jī)制,這種機(jī)制的存在使得Java體系能夠處理一切必要的多線程任務(wù)。不僅如此,Java更是使得多線程應(yīng)用程序的開(kāi)發(fā)得到了更簡(jiǎn)單有效的途徑。在Java體系的所有類庫(kù)中,編程人員都設(shè)定了多線程機(jī)制,巧妙利用Thread類對(duì)線程進(jìn)行控制,從而實(shí)現(xiàn)線程的啟動(dòng)、運(yùn)行、掛起、休眠、恢復(fù)、終止以及退出等操作。
1.1.2 對(duì)多線程的同步
Java所進(jìn)行地多線程同步機(jī)制是在管程機(jī)制的基礎(chǔ)上實(shí)現(xiàn)的,當(dāng)Java的管程對(duì)象生產(chǎn)的時(shí)候,就會(huì)使其自動(dòng)產(chǎn)生同步鎖,這樣就可以實(shí)現(xiàn)多線程上的同步。而關(guān)于多線程的變量存儲(chǔ)管理問(wèn)題,Java也能很好的處理。在這個(gè)處理過(guò)程中,Java使用內(nèi)存模型來(lái)確保數(shù)據(jù)的無(wú)損,并能夠?qū)εf數(shù)據(jù)進(jìn)行修改和重試。
1.1.3 通信機(jī)制
多線程程序運(yùn)行時(shí),不僅要考慮到應(yīng)用的同步問(wèn)題,還要進(jìn)行線程間的合作。通過(guò)Java控制的線程合作,有時(shí)會(huì)出現(xiàn)線程反復(fù)上鎖問(wèn)題,這就會(huì)使程序之間出現(xiàn)不同程度的等待,增加處理時(shí)間。這種情況出現(xiàn)的時(shí)候,需要通過(guò)觸發(fā)原語(yǔ)和顯示等待來(lái)進(jìn)行操作。
2 Java多線程的應(yīng)用
通過(guò)互聯(lián)網(wǎng)的網(wǎng)絡(luò)和調(diào)節(jié),可以使各終端進(jìn)行遠(yuǎn)程協(xié)調(diào)工作,涉及到多個(gè)應(yīng)用程序和終端機(jī)器。不同用戶和應(yīng)用需要共同進(jìn)行任務(wù)。而這種遠(yuǎn)程協(xié)調(diào)的操作正是互聯(lián)網(wǎng)時(shí)代需要的。Java能夠增強(qiáng)其交互性、協(xié)同性,實(shí)現(xiàn)更快速便捷的多端交互操作。
2.1 C1ient處理系統(tǒng)
在互聯(lián)網(wǎng)上進(jìn)行信息的交換和協(xié)同具有隨機(jī)性,這種隨機(jī)性表現(xiàn)在信息傳達(dá)過(guò)程中,無(wú)法預(yù)計(jì)其規(guī)律和到達(dá)時(shí)間,而這特質(zhì)就要求我們進(jìn)行數(shù)據(jù)丟失的防范措施。研究人員們充分利用Java多線程的特點(diǎn),設(shè)計(jì)出C1inet處理系統(tǒng),這種結(jié)構(gòu)能夠?qū)⒕W(wǎng)絡(luò)傳輸和用戶分割開(kāi)。從而實(shí)現(xiàn)對(duì)信息的有效保護(hù)。
在這種結(jié)構(gòu)中有send和recieve兩個(gè)線程,可以分別進(jìn)行發(fā)送和接受。當(dāng)這種結(jié)構(gòu)工作時(shí),就會(huì)和server進(jìn)行連接,出現(xiàn)連接通道,再次使用時(shí),就無(wú)需二次網(wǎng)絡(luò)分配,大大提高了系統(tǒng)處理速度,減少了消耗。同時(shí)為了避免因網(wǎng)絡(luò)延遲出現(xiàn)的操作中斷,設(shè)計(jì)人員們?cè)趦?nèi)存中設(shè)計(jì)了Cache,有效對(duì)所要發(fā)送的信息進(jìn)行了存儲(chǔ)和記憶,使得信息丟失的比率減少。
2.2 多線程Server
我們知道,在C/S的體系結(jié)構(gòu)中,所有的操作都要直接或間接通過(guò)Server實(shí)現(xiàn)。Java多線程技術(shù)能夠幫助實(shí)現(xiàn)發(fā)送和接受的高效性。當(dāng)我們進(jìn)行Server操作時(shí),Server端口先啟動(dòng)一個(gè)線程,當(dāng)一個(gè)用戶加入后,會(huì)再產(chǎn)生兩個(gè)新的線程,這兩個(gè)新的線程會(huì)分別執(zhí)行該用戶的發(fā)送和接受工作。用戶在這個(gè)過(guò)程中,無(wú)需考慮信息問(wèn)題,只需要進(jìn)行發(fā)送和接受的操作,系統(tǒng)能夠自動(dòng)處理相關(guān)數(shù)據(jù)信息的儲(chǔ)存和保護(hù)。在此過(guò)程中,接收線程所接受到的消息會(huì)被安放在固定位置,即Cache中,實(shí)現(xiàn)信息的儲(chǔ)存。當(dāng)用戶需要處理信息時(shí),Process線程可以將消息取出并進(jìn)行操作。
3 結(jié)語(yǔ)
Java語(yǔ)言是計(jì)算機(jī)信息處理領(lǐng)域所需要并不斷發(fā)展的編程語(yǔ)言,它能夠適應(yīng)分布型的計(jì)算環(huán)境。具有強(qiáng)大的網(wǎng)絡(luò)程序設(shè)計(jì)功能??茖W(xué)利用Java技術(shù)能夠?qū)崿F(xiàn)服務(wù)器和多客戶端之間的連接和消息的處理。信息在這個(gè)過(guò)程中不會(huì)以任何形式發(fā)生丟失和缺損。使用發(fā)送和接受分離的方式是其結(jié)構(gòu)的重要影響條件。但是多線程不是完美的,所以需要對(duì)其進(jìn)行更深層次的探索和研究,從而實(shí)現(xiàn)對(duì)Java語(yǔ)言的更好利用。
參考文獻(xiàn):
[1]劉輝. Java網(wǎng)絡(luò)編程:連接網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的多種方法[J].價(jià)值工程, 2010(03).
[2]江小燕.Java網(wǎng)絡(luò)編程的研究[J].電腦編程技巧與維護(hù),2010(14).
[3]吳金秀. Java多線程編程技術(shù)的研究[J].網(wǎng)絡(luò)與信息,2009(05).