java非阻塞通信技术原理研究与实现

java非阻塞通信技术原理研究与实现

ID:27560641

大小:112.50 KB

页数:4页

时间:2018-12-03

java非阻塞通信技术原理研究与实现_第1页
java非阻塞通信技术原理研究与实现_第2页
java非阻塞通信技术原理研究与实现_第3页
java非阻塞通信技术原理研究与实现_第4页
资源描述:

《java非阻塞通信技术原理研究与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、JAVA非阻塞通信技术原理研究与实现StudyandRealizationonJavaNon-blockingCommunication陈华恩Chen-Huaen(湖南生物机电职业技术学院计算机系,长沙410126)(Dept.ofComputerScience,HunanVocationaltechnologicalacademyofCreatureandequipmentandelectricpowerequipment,Changsha410126)[摘要]本文对JAVA非阻塞通信技术进行了分析与阐述,同时对JAVA

2、非阻塞通信技术的通信机制与工作原理进行了详细的研究与探讨,并给出采用JAVA非阯塞通信技术构建网络通信应用程序的具体实现。I关键词JJAVA非阻塞通信服务器客户端Socket[ABSTRACT]Inthispaper,JAVAnon-blockingcommunicationtechnologiesareanalyzedandexplained,whilenon-blockingcommunicationtechnologiesJAVAcommunicationmechanismandworkingprincipleofa

3、detailedstudyanddiscussion,andgivesnon-blockingcommunicationusingJAVAtechnologytobuildaspecificnetworkcommunicationapplicationsachieve.[KEYWORDS]JavaNon-blockingcommunicationsserverClientSocket1、引言在传统模式中,使用ServerSocket及Socket创建的服务器与客户端程序,因为采用阯塞方式进行通信,使得服务器在接受数据或者在

4、Socket对象读取数据吋都有可能处于长期等待过程中,这样会造成资源的浪费和效率的低下,并且这样的问题即使采用多线程技术也不能彻底解决。A从JAVA引入非阻塞通信机制,客户端与服务器程序之间的连接、通信都可采用非阻塞方式进行,使得可以在服务器端创逑单一线程而实现同时与多个客服端通信,这样减少服务器线程阻塞同时提高服务器效率。2、阻塞通信与非阻塞通信2.1阻塞通信在JAVA平台上,服务器与客户端程序进行远程通信时,采用传统的I/O处理方式都有可能导致阻塞。比如当客户端与服务器端建立连接时,执行Socket对象的connect

5、ion^方法时,会进入阻塞,直到连接成功为止。同样在服务器端,服务器成功启动以后,执行ServerSocket的accept^方法等待客户的连接过程中,也会处于阻塞状态。另外在客户端与服务器己经建立连接以后,使用Socket对象进行通信过程巾,线程从输入流读入数据或者向输出流写数据的过程中,在调用readO方法和write()方法时,也会造成阻塞。当然我们可以使用多线程的服务器程序处理阻塞I/O,但同时却带来了一些弊端,比如增大了系统开销,增加了虚拟机线程调度的负担与应用程序的杂性,而且多个线程的I/O阯塞同样无法解决。2

6、.2非阻塞通信非附塞是指在线程执行某些方法时,不需要等到操作完全就绪了才返冋,而是可以即时的返回。例如,服务器在接收客户端连接时,如果没有客户连接,可以立即返回,而不是一直等待直到连接成功。同样线程在处理输入输出流时,当从输入流读数据时,如果输入流没有数据就立即返回。这样使得服务器与客户端进行通信吋非常灵活快捷,接收数据吋,发现没有数据就直接返冋,或者只有部分数据就返冋部分数据。在接发送数据时,也可以部分或全部发送。3、JAVA非阻塞通信机制与工作原理3.1JAVANIO工作机制JAVANIO非阻塞通信是基于java.ni

7、o包巾的Channel(通道)与Selector(选择器)进行构建。SelectableChannel类实现了Channel接口,是一种能够实现非阻塞I/O和通过Selector实现多路复用通道的基础类。只有继承SelectableChannel的类才可以处于非阻樂模戎下工作,如ServerSocketChannel。而没有继承SelectableChannel的类是不能实现非阻塞I/O和多通道I/O,如FileChannel类。SelectableChannel相关类的层次结构如图1所示。图1SelectableChan

8、nel相关类的层次结构3.2JAVA非阻塞通信相关类介绍ServerSocketChannel类ServerSccketChannel类是ServerSocket的替代类,支持阻塞通信与非阳.塞通信。ServerSocketChannel从SelectableChannel屮继承了configureBl

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。