徐凱
摘要:隨著近幾年科學(xué)技術(shù)、計(jì)算機(jī)技術(shù)、軟件技術(shù)等的快速發(fā)展,計(jì)算機(jī)編程技術(shù)的語(yǔ)言多種多樣,適應(yīng)到各個(gè)行業(yè)、特殊需求中,計(jì)算機(jī)各種程序語(yǔ)言為我們的各個(gè)行業(yè)提供了極大的便捷。當(dāng)前,尤其是Java 程序語(yǔ)言在程序編寫(xiě)過(guò)程中起到非常重要的作用,該Java語(yǔ)言程序也已經(jīng)應(yīng)被應(yīng)用到各個(gè)領(lǐng)域中,有關(guān)科學(xué)實(shí)踐、理論技術(shù)在這些領(lǐng)域中發(fā)揮著非常重要的作用。在大型復(fù)雜構(gòu)架的網(wǎng)絡(luò)編程中被廣泛采用Java程序設(shè)計(jì)語(yǔ)言,尤其在Java雙線程設(shè)計(jì)表現(xiàn)出了特別出色的安全性與快速性。程序設(shè)計(jì)人員在編程時(shí)候利用Java 的多線程編程接口,結(jié)合開(kāi)發(fā)人員寫(xiě)出關(guān)于支持雙線程的應(yīng)用程序,通過(guò)硬件與軟件的完美結(jié)合,有效地縮短了開(kāi)發(fā)時(shí)間,更好地滿足客戶需求。通過(guò)這樣設(shè)計(jì),更重要的是減小了程序執(zhí)行時(shí)所用的時(shí)間,使得系統(tǒng)更加穩(wěn)定、可靠。筆者以開(kāi)發(fā)一個(gè)Java雙線程系統(tǒng)實(shí)例為例說(shuō)明Java雙線程網(wǎng)絡(luò)編程是如何實(shí)現(xiàn)。
關(guān)鍵詞:Java;多線程技術(shù);網(wǎng)絡(luò)編程
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)31-0069-02
自從SUN 公司開(kāi)發(fā)出適合于分布式計(jì)算的新一代面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言----Java,這種程序開(kāi)發(fā)語(yǔ)言是一種非常具有新概念的高級(jí)語(yǔ)言。要想作為一種好的、用著穩(wěn)定、可靠的程序語(yǔ)言;首先,它本身理解要簡(jiǎn)單、面向?qū)ο?、不依賴于機(jī)器的結(jié)構(gòu)、能夠由經(jīng)過(guò)初步訓(xùn)練的編程語(yǔ)言人員就可以勝任、具有可移植性、健壯性、安全性、能夠?yàn)槎嗑€程接口提供同時(shí)并行發(fā)生信息的機(jī)。其次,網(wǎng)絡(luò)要得到最大限度的高效利用,如Java程序語(yǔ)言開(kāi)發(fā)的程序可以在網(wǎng)絡(luò)上高效傳輸、信息交換,在交換期間不收CPU和安裝環(huán)境限制。
Java編制語(yǔ)言如今已經(jīng)成為 Internet 應(yīng)用的主要開(kāi)發(fā)語(yǔ)言,希望通過(guò)此次研究、探討為未來(lái)網(wǎng)絡(luò)通信的發(fā)展提供參考和建議。
1 Java多線程技術(shù)
一旦提到Java編程語(yǔ)言的多線程技術(shù),每一位程序設(shè)計(jì)者、網(wǎng)絡(luò)設(shè)計(jì)者必須對(duì)多線程有一個(gè)深刻的認(rèn)識(shí)。這一類程序執(zhí)行過(guò)程中同一時(shí)間可以執(zhí)行多個(gè)指令,這些不同指令之間是相對(duì)獨(dú)立的;即所謂的幾種指令流就有幾個(gè)線程在執(zhí)行,這種執(zhí)行方式就定義為線程數(shù)。這些線程之間的協(xié)調(diào)都是由電腦、工作站操作系統(tǒng)來(lái)進(jìn)行獨(dú)立匹配、調(diào)整、控制的。
為了使得在網(wǎng)絡(luò)通信操作起來(lái)更為簡(jiǎn)單,設(shè)計(jì)者巧妙地利用多線程技術(shù)共享一個(gè)存儲(chǔ)空間,這與進(jìn)程有本質(zhì)的區(qū)別,因?yàn)檫M(jìn)程有自己獨(dú)立的存儲(chǔ)空間,相反,線程卻沒(méi)有。通過(guò)將其應(yīng)用到網(wǎng)絡(luò)編程中,可以并行發(fā)送多個(gè)通道執(zhí)行指令,讓網(wǎng)絡(luò)運(yùn)行更快、更高效。
2 多線程實(shí)現(xiàn)方式與啟動(dòng)
3 線程睡眠、優(yōu)先級(jí)、yield、join
在線程網(wǎng)絡(luò)編程技術(shù)中有幾個(gè)非常重要的概念,這些概念在編程接口和程序執(zhí)行過(guò)程中必須提前設(shè)置好。線程睡眠指定的毫秒數(shù),參數(shù)是指線程不會(huì)運(yùn)行的最短時(shí)間。sleep是Thread類的靜態(tài)方法,所以一個(gè)線程無(wú)法使另外一個(gè)線程進(jìn)入睡眠狀態(tài),不要使用sleep做定時(shí)器。不能通過(guò)設(shè)置線程的優(yōu)先級(jí)來(lái)控制線程的執(zhí)行先后順序,Thread類中定義了三個(gè)優(yōu)先級(jí)1、5、10。
join,Thread類的非靜態(tài)方法。如果線程B在線程A完成工作之前不能夠進(jìn)行它的工作,則可以讓線程B“加入到”線程A。這也就意味著知道線程A執(zhí)行完成,線程B不會(huì)變?yōu)榭蛇\(yùn)行的。
程序在運(yùn)行過(guò)程中有時(shí)候容易鎖死,這主要是多線程并發(fā)執(zhí)行指令流的時(shí)候。為了防止鎖死問(wèn)題,我們采用以下幾點(diǎn)來(lái)就解決此問(wèn)題:①所有競(jìng)爭(zhēng)的資源編序號(hào),按照序號(hào)或者優(yōu)先級(jí)來(lái)執(zhí)行需要的指令;②將多個(gè)共享資源組成一組放在同一鎖下。只有他們同時(shí)具備鑰匙時(shí)候才能順利執(zhí)行程序。
4 多線程技術(shù)在網(wǎng)絡(luò)編程中實(shí)現(xiàn)建立服務(wù)器類
服務(wù)器在網(wǎng)絡(luò)建立過(guò)程中非常重要,它起著接受、轉(zhuǎn)換、存儲(chǔ)數(shù)據(jù)的作用。那么,多線程網(wǎng)絡(luò)編程技術(shù)中建立服務(wù)器類的過(guò)程很重要,以下就詳細(xì)講述其建立的過(guò)程。在網(wǎng)絡(luò)交換過(guò)程中數(shù)據(jù)信息處理核心是客戶服務(wù)器??蛻舳擞梢恍㎎ava小程序組成, 利用這些小程序段實(shí)現(xiàn)的主要功能,用戶界面設(shè)設(shè)計(jì)、服務(wù)器的通信控制,控制這些過(guò)程很簡(jiǎn)單,主要分為兩個(gè)部分,即圖形界面和服務(wù)器程序語(yǔ)言與多線程接口的結(jié)合,主要程序段如下:
5 結(jié)論
通過(guò)筆者對(duì)Java雙線程網(wǎng)絡(luò)程序編程開(kāi)發(fā)的實(shí)例研究學(xué)習(xí),該種編程語(yǔ)言設(shè)計(jì)增強(qiáng)了Java 作為網(wǎng)絡(luò)程序設(shè)計(jì)語(yǔ)言的優(yōu)勢(shì),為今后應(yīng)用程序的應(yīng)用提供理論支持。如今,不管怎么編寫(xiě)程序,滿足客戶需求這是最基本的要求,網(wǎng)絡(luò)通信與我們每個(gè)人都有著密切關(guān)系,網(wǎng)絡(luò)的快速發(fā)展勢(shì)必要讓我們使用更加高端的程序設(shè)計(jì)機(jī)制。我們有必要將其Java 多線程網(wǎng)絡(luò)編程技術(shù)進(jìn)行普及教育,從大學(xué)、??频染妥寣W(xué)生有認(rèn)識(shí)。一旦走上編程設(shè)計(jì)道路,我們應(yīng)該更加重視它的重要性。為了以后更好的工作生活服務(wù),我們應(yīng)該加快計(jì)算機(jī)信息化的普及發(fā)展。
參考文獻(xiàn):
[1] 張衛(wèi)民. Java 語(yǔ)言及其應(yīng)用[M]. 北京: 清華大學(xué)出版社, 1996.
[2] 金勇華, 曲俊生. Java 網(wǎng)絡(luò)高級(jí)編程 [M]. 北京: 人民郵電出版社, 2001.
[3] Eckel B (美). Java 編程思想 [M]. 北京: 機(jī)械工業(yè)出版社, 1999.
[4] 劉巍, 唐學(xué)兵. 利用 Java 的多線程技術(shù)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的訪問(wèn)[J]. 計(jì)算機(jī)應(yīng)用, 2002(12).
[5] The Source for JavaTM Technology[EB/OL]. http://java.sun.com.