您的位置 首页 java

java基础之NIO非阻塞模式网络传输

java 的非阻塞的NIO通讯方式了解下。。。

1. 有一个专门的 线程 来处理所有的 IO 事件,接收并负责分发。

2. 事件驱动 机制:通讯事件到的时候触发,而不是同步的去监视事件。

3. 线程通讯:线程之间通过 wait,notify 等方式通讯。保证每次上下文切换都是有意义的。减少无谓的线程切换。

服务端和客户端各自维护一个管理通道的对象,我们称之为selector,该对象能检测一个或多个通道 (channel) 上的事件。

我们以服务端为例,如果服务端的selector上注册了读事件,某时刻客户端给服务端发送了一些数据,阻塞I/O这时会调用read()方法阻塞地读取数据,而NIO的服务端会在selector中添加一个读事件。服务端的处理线程会轮询地访问selector,如果访问selector时发现有感兴趣的事件到达,则处理这些事件,如果没有感兴趣的事件到达,则处理线程会一直阻塞直到感兴趣的事件到达为止

在应用中,一般会使用 多线程 ,一个线程专门负责监听客户端的连接请求,以阻塞方式进行,另一个线程专门处理请求,这个处理请求的线程真正采用NIO的方式

文章来源:智云一二三科技

文章标题:java基础之NIO非阻塞模式网络传输

文章地址:https://www.zhihuclub.com/185623.shtml

关于作者: 智云科技

热门文章

网站地图