姚凱+劉琳琳
摘 要
Java語言的基本運行依靠虛擬機,且要求虛擬機具備不同操作系統(tǒng),因此,其運行過程具備跨多個平臺的特征。能夠用于屏蔽其他操作系統(tǒng)之間的差異。對于網絡程序的編寫而言,跨平臺的特征是十分必要的。
【關鍵詞】網絡編程 多線程技術 Java
進行網絡編程工作的主要目的是:以網絡協(xié)議為基礎,間接或者直接與不同計算機設備進行交流、通訊。當前,網絡編程中存在以下兩方面問題:
(1)找準主機能夠穩(wěn)定、安全地傳輸數據;
(2)是否能夠確定網絡中是一臺主機或者多臺主機。
計算機IP層(位于TCP/IP協(xié)議)的主要功能為定位網絡中的主機,也是傳輸數據的路由器,通過IP地址能夠直接明確互聯(lián)網中的主機位置。同時,TCP層可提供數據的傳輸機制,屬于網絡變成對象,目前較為流行的網絡編程模型是客戶機/服務器結構。
1 具體與應用
當運行一個應用程序的時候,就啟動了一個進程,當然有些會啟動多個進程。啟動進程的時候,操作系統(tǒng)會為進程分配資源,其中最主要的資源是內存空間,因為程序是在內存中運行的。在進程中,有些程序流程塊是可以亂序執(zhí)行的,并且這個代碼塊可以同時被多次執(zhí)行。實際上,這樣的代碼塊就是線程體。線程是進程中亂序執(zhí)行的代碼流程。當多個線程同時運行的時候,這樣的執(zhí)行模式成為并發(fā)執(zhí)行。
2 Java多線程
線程的是java.lang.Thread類,在虛擬機啟動之后,通常只有Java類的main方法這個普通線程運行,運行時可以創(chuàng)建和啟動新的線程;守護線程(damon thread),守護線程在后臺運行,提供程序運行時所需的服務。當虛擬機中運行的所有線程都是守護線程時,虛擬機終止運行。Java線程模型涉及可以動態(tài)更改的線程優(yōu)先級。線程的優(yōu)先級是從1到10之間的一個數字,數字越大表明的任務越緊急。JVM的標準需要先選用較高優(yōu)先級的線程,再過渡到較低線程,因此,整個標準在處理相同級別的線程時通常采取隨機原則,處理線程的關鍵因素為基層操作系統(tǒng)。
3 在Socket基礎上低層次的Java編程
3.1 通訊
通常情況下,網絡上的兩個程序會有雙向的通訊進行連接,以此來交換數據,Socket即為該雙向鏈路的一端,它主要用來連接服務方與客戶方。其次,它屬于編程界面的一種,較為流行。一個Socket由一個端口號進行確定,具有唯一性。
以往的UNIX環(huán)境中,不僅僅只有Socket能夠進行TCP/IP協(xié)議,Socket支持的協(xié)議種類較多,這兩者之間不存在必要的相關性。Socket在Java環(huán)境下需要以TCP/IP協(xié)議作為基礎。
3.2 創(chuàng)建線程分析及線程同步的情況
主要有兩種方式,第一種是運用繼承類的Thread的方式進行創(chuàng)建,其中的子類重載是run0方式,具體的實現(xiàn)方式如下所示:class Thead Name extends Thread,其中在線程中類的代碼入口處是以線程的方式運行。而第二種方式是建立Runnable的接口類,因為在Java程序中不支持更多的繼承性,所以為了能夠通過線性方式更好地運行和繼承其他的類,則需要通過Runnable的接口,而在Runnable中的接口則是能進過run0。
運用兩個或者是兩個以上的線程可以更好地分享資源,而在實際操作過程中就需要充分保障資源的共享性,因此,這就需要運用一定的方式充分確定資源情況,并能夠結合當前線程被占用的情況來達到此目的,所以這一過程可以稱之為同步。而在Java中,為了能夠更好地實現(xiàn)這一不同的目標,則需要在占用程序中更好地保障線程處于被占用的對象中,這就需要借助于管程機制得以實現(xiàn)。在規(guī)定的時間中看,可以通過線程的方式而有效獲得管程,當這個步驟能夠通過同步的方式而實現(xiàn)返回目標時,此時的線程可以提升管理的效率。然而在Java中需要對每個對象都進行不同鎖定,并結合每一個線程而組合一個集合,從而能夠保證對象能夠順利生成。
4 TCP與UDP兩類傳輸協(xié)議
在TCP/IP協(xié)議名稱中雖然只存在TCP這一個協(xié)議名,但在這個傳輸層中卻同時包含有TCP與UDP這兩個協(xié)議,其中TCP是一種面向連接以保障傳輸可靠性的協(xié)議,TCP的全稱為Tranfer Control Protocol,通過該協(xié)議,通??梢缘玫綗o差錯的數據流,且是順序的,能夠在接收方和發(fā)送方這兩個成對的socket之間建立連接,從而在TCP協(xié)議的基礎上實現(xiàn)通信。UDP屬于一種一種無連接的協(xié)議,其全稱為User Datagram Protocol,能夠在網絡上以任何可能的路徑傳達到目的地,所以在這個過程中,傳達目的地以及傳達內容的準確性是無法得到保障的。由于TCP協(xié)議是一個面向連接的協(xié)議,所以往往在建立數據連接之前需要建立數據連接,從而會多出一個建立連接的時間,影響傳輸效率。
5 總結
總而言之,編程是被個別創(chuàng)建的,可以歸類到線程組中,為方便調試和監(jiān)視,線程可以將它們歸類到線程組中,在創(chuàng)建線程的同時將其與一個線程組進行關聯(lián),因而線程組組織線程在使用大量線程的程序時可能具有與非常重要的作用。
計算機網絡主要是通過通信設施、傳輸介質以及網絡通信協(xié)議,將地點分散的計算機設備進行互聯(lián),從而實現(xiàn)數據傳輸系統(tǒng)和資源共享,而網絡編程通過程序的編寫能夠實現(xiàn)設備之間的數據傳輸,其中Java語言通過其提供的接口能夠為網絡編程提供極大方便。
參考文獻
[1]徐凱.Java多線程技術的網絡編程探究[J].電腦知識與技術,2015,12(03).
[2]李玉君,陳莉莉.淺析Java多線程技術在網絡通信中的應用研究[J].電子技術與工程軟件,2016,06(22).
[3]申時全.Java多線程技術的網絡并發(fā)編程及應用研究[J].現(xiàn)代計算機(專業(yè)版),2016,11(06).