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

        ?

        NIO高性能技術(shù)在Java網(wǎng)絡(luò)通信中的應(yīng)用研究

        2016-12-01 00:19:21張健立集寧師范學(xué)院計算機系內(nèi)蒙古烏蘭察布012000
        山東工業(yè)技術(shù) 2016年11期
        關(guān)鍵詞:通道

        張健立(集寧師范學(xué)院 計算機系,內(nèi)蒙古 烏蘭察布 012000)

        ?

        NIO高性能技術(shù)在Java網(wǎng)絡(luò)通信中的應(yīng)用研究

        張健立
        (集寧師范學(xué)院計算機系,內(nèi)蒙古烏蘭察布012000)

        摘要:Java平臺提供了比較豐富的標(biāo)準(zhǔn)類I/O庫來滿足一般應(yīng)用場景下的通信需求,但對于大量的并發(fā)通信請求,就必須使用一定的技術(shù)手段來解決系統(tǒng)面臨的通信瓶頸。到了JDK 1.4中Java提供了新的I/O(NIO)類庫,到了Java7中NIO的補充類庫越發(fā)強大,很多原來需要開發(fā)人員編寫的功能,在現(xiàn)在的類庫中都有了實現(xiàn)。

        關(guān)鍵詞:NIO;通道;阻塞;異步通訊

        1 引言

        JAVA是目前比較流行的程序開發(fā)語言,在現(xiàn)實中大量的網(wǎng)絡(luò)應(yīng)用也采用了Java語言來開發(fā)。程序中與I/O相關(guān)的計算所花費的時間占較大比重,這其中的主要原因是在進行I/O通信時,一般需要競爭操作系統(tǒng)的有限資源,或是需要等待速度較慢的外部設(shè)備完成其操作,從而使I/O相關(guān)的計算所等待的時間較長。為了優(yōu)化系統(tǒng)性能,提升I/O相關(guān)操作的性能對應(yīng)用程序的整體運行性能有比較大的幫助。Java平臺提供了比較豐富的標(biāo)準(zhǔn)類I/O庫來滿足一般應(yīng)用場景下的通信需求,但對于大量的并發(fā)通信請求,就必須使用一定的技術(shù)手段來解決系統(tǒng)面臨的通信瓶頸。到了JDK 1.4中Java提供了新的I/O(NIO)類庫,到了Java7中NIO的補充類庫越發(fā)強大,很多原來需要開發(fā)人員編寫的功能,在現(xiàn)在的類庫中都有了實現(xiàn)。

        2 阻塞式通訊方式

        如果要實現(xiàn)一個網(wǎng)絡(luò)客戶端程序,需要創(chuàng)建一個java.net.Socket類的對象,再連接到遠程服務(wù)器。服務(wù)器端需要創(chuàng)建一個java.net. ServerSocket類的對象并使用其accept方法在指定端口進行監(jiān)聽,調(diào)用accept時會處于阻塞狀態(tài),等待客戶端程序的連接請求。這給網(wǎng)絡(luò)編程帶來了一個很大的問題,我們假設(shè)對上述的服務(wù)器/客戶機模型,提出更高的要求,即讓服務(wù)器同時為多個客戶機提供一問一答的服務(wù),就需要在服務(wù)器端使用多線程。多線程的目的是讓每個連接都擁有獨立的線程,主線程持續(xù)等待客戶端的連接請求,如果有連接,則創(chuàng)建新線程,并在新線程中提供為前例同樣的問答服務(wù),這樣任何一個連接的阻塞都不會影響其他的連接。但是這種連接方式要求有一個客戶請求,服務(wù)器就要為之開啟一個線程,因為每創(chuàng)建一個線程都要消耗系統(tǒng)資源,顯然服務(wù)器的負(fù)載壓力比較大。

        3 非阻塞式通訊方式

        如果程序?qū)W(wǎng)絡(luò)操作的并發(fā)性和吞吐量的要求比較高,那么阻塞式的套接字通道就不能比較簡單地滿足程序的要求,這時比較好的辦法是通過非阻塞式的套接字通道實現(xiàn)多路復(fù)用或使用NIO.2中的異步套接字通道。

        多路復(fù)用的思想是,通過一個專門的選擇器(selector)來同時對多個套接字通道進行監(jiān)聽。當(dāng)其中的某些套接字通道上有它感興趣的事件發(fā)生時,這些通道會變?yōu)榭捎玫臓顟B(tài),可以在選擇器的選擇操作中被選中,選擇器通過一次選中操作可以獲取這些被選中的通道列表,然后根據(jù)發(fā)生的事件類型分別進行處理。

        多路復(fù)用的實現(xiàn)方式的核心是選擇器,即java.nio.channels.Selector類的對象,非阻塞式的套接字通道可以通過register方法注冊到某個Selector類的對象上,以聲明由該Selector類的對象來管理當(dāng)前這個套接字通道。在進行注冊時,需要提供一個套接字通道感興趣的事件列表,這些事件包括連接完成、接收到新連接請求、有數(shù)據(jù)可讀和可以寫入數(shù)據(jù)等。這些事件定義在java.nio.channels.SelectionKey類中,在完成注冊之后,可以調(diào)用Selector類對象的select方法來進行選擇。這里需要注意的地方是一個套接字通道只有在通過confgureBlocking方法設(shè)置為非阻塞模式之后,才能被注冊到選擇器上。

        4 異步NIO通道通訊方式

        在Java7中NIO.2引入了新的異步通道的概念,并提供了異步文件通道和異步套接字通道的實現(xiàn)。對于文件通道來說,一般的操作如讀和寫,都是同步進行的,調(diào)用者會處于阻塞狀態(tài),以等待相應(yīng)操作的完成。而對于異步套接字通道來說,阻塞式套接字通道的使用方式與文件通道相同,而非阻塞式套接字通道的使用方式則依靠選擇器來完成。異步通道一般提供兩種使用方式:一種是通過Java同步工具包中的java.util.concurrent. Future類的對象來表示異步操作的結(jié)果;另外一種是在執(zhí)行操作時傳入一個java.nio.channels.CompletionHandler接口的實現(xiàn)對象作為操作完成時的回調(diào)方法。這兩種使用方式的區(qū)別只在于調(diào)用者通過何種方式來使用異步操作的結(jié)果。在使用Future類的對象時,要求調(diào)用者在合適的時機顯式的通過Future類的對象的get方法來得到實際的操作結(jié)果;而在使用CompletionHandler接口時,實際調(diào)用的結(jié)果作為回調(diào)方法的參數(shù)來給出。

        5 小結(jié)

        I/O操作一直是程序開發(fā)中的重要組成部分,高效的I/O操作實現(xiàn)也是很多程序開發(fā)人員一直所追求的目標(biāo)。不同的傳輸實體本身的特征會使在其上進行的I/O操作有各自不同的特點,I/O操作也需要根據(jù)這些實體的特征來做出相應(yīng)的調(diào)整。如果程序是基于Java7創(chuàng)建的,從通道開始入手是一個很不錯的選擇,但是對于流的操作則盡量少使用通道。

        參考文獻:

        [1]蔡天鳴,王若愚.Java SE7平臺下的NIO.2探析[J].軟件導(dǎo)刊,2011(08).

        [2]成富.深入理解Java7核心技術(shù)與最佳實踐[J].機械工業(yè)出版社,2012(05).

        [3]王潔.JAVA NIO在Socket通訊中的應(yīng)用[J].成都信息工程學(xué)院學(xué)報,2003(09).

        本文系項目基金階段性課題:“基于Java NIO高性能網(wǎng)絡(luò)應(yīng)用技術(shù)的研究”:集寧師范學(xué)院科學(xué)研究項目 (項目編號:jsky2016044)

        DOI:10.16640/j.cnki.37-1222/t.2016.11.147

        猜你喜歡
        通道
        三年后,火星“通道”需交通管制
        電能量計量計費系統(tǒng)運維及應(yīng)用探索
        通道縣自然景觀資源調(diào)查
        綠色科技(2016年21期)2016-12-27 15:58:57
        通道創(chuàng)建技術(shù)在Photoshop CS設(shè)計中的應(yīng)用
        客家朝祖單的個案研究
        文史雜志(2016年6期)2016-12-03 19:44:45
        如何讓中職學(xué)校的學(xué)生學(xué)好photoshop軟件
        考試周刊(2016年79期)2016-10-13 22:52:01
        城市軌道交通車站通道聯(lián)合通行能力的研究
        科技視界(2016年2期)2016-03-30 23:17:15
        Photoshop 通道在圖像處理中的運用研究
        試論美聲唱法“通道”的運用
        青春歲月(2015年19期)2015-11-03 12:54:14
        淺談ALENIA二次雷達SIR—M告警原理及其排除
        科技視界(2015年27期)2015-10-08 11:58:40
        日本特殊按摩在线观看| 中国女人a毛片免费全部播放| 中文字幕无码免费久久9一区9| 亚洲人成在线播放a偷伦| 国产一区二区一级黄色片| 在线看亚洲一区二区三区| 一区二区三区日韩亚洲中文视频| 强d乱码中文字幕熟女1000部| 国产99久久久国产精品免费 | 亚洲黄色大片在线观看| 亚洲最大av在线精品国产| 亚洲视频高清一区二区| 性按摩xxxx在线观看| 国产成人aaaaa级毛片| 麻豆精品传媒一二三区| 国内揄拍国内精品| 北岛玲中文字幕人妻系列| 蜜臀av人妻一区二区三区| 亚洲a级视频在线播放| 午夜爽爽爽男女免费观看影院| 激性欧美激情在线| 国产一区二区不卡老阿姨| 亚洲aⅴ无码国精品中文字慕| 一本久久精品久久综合桃色| 97人妻精品一区二区三区免费| 国产精品妇女一区二区三区| 国产精品成人网站| 18禁无遮挡无码网站免费| 四虎成人精品无码永久在线| 久久免费网站91色网站| 亚洲av日韩一卡二卡| 国产精品51麻豆cm传媒| 亚洲av无码成人yellow| 最新亚洲无码网站| 亚洲一区二区三区av无| 国产最新女主播福利在线观看| 人人爽久久涩噜噜噜av| 99在线视频精品费观看视| 一本色道久久88综合亚洲精品| 水蜜桃在线精品视频网| 亚洲av综合av国产av中文|