java.nio异步线程安全的IO
2015-08-26 18:59
253 查看
BIO 方式使得整个处理过程和连接是绑定的,只要连接建立,无论客户端是否有消息发送,都要进行等待处理,一定程度上浪费了服务器端的硬件资源,因此就有了 NIO 方式。Java 对于 NIO 方式的支持是通过 Channel和 Selector 方式来实现,采用的方法为向 Channel注册感兴趣的事件,然后通过 Selector 来获取到发生了事件的 key,如发生了相应的事件,则进行相应的处理,否则则不做任何处理,是典型的Reactor 模式,按照这样的方式,就不用像 BIO 方式一样,即使在没有消息的情况下也需要占据一个线程来阻塞读取消息,从而提升服务器的使用效率, 为实现 TCP/IP+NIO 方式的系统间通讯, Java 提供了 SocketChannel和 ServerSocketChannel两个关键的类,网络 IO 的操作则改为通过ByteBuffer 来实现,具体的基于 java实现TCP/IP+NIO 方式的通讯的方法如下所示。
相关文章推荐
- Aptana插件安装到eclipse和myeclipse的详细过程
- Struts2核心工作流程与原理
- Struts2笔记——result结果类型
- Struts2笔记——result结果类型
- 卸载JDK,提示“JDK Windows Installer 程序包有问题。此安装需要的DLL不能运行。”
- Spring 事务源码分析——Hibernate篇
- Struts2笔记——struts.xml配置详解
- Struts2笔记——struts.xml配置详解
- Struts2第一个实例HelloWorld
- Struts2笔记——第一个实例HelloWorld
- Struts2初次框架配置
- Struts2笔记——初次框架配置
- Spring官网下载dist.zip的几种方法
- Spring集成ActiveMQ
- MyEclipse使用总结——MyEclipse10安装SVN插件
- MyEclipse配置JDK6+Opencv2.4.11
- 在 Java 中解压 zip 文件
- java - 日期相减、四舍五入
- 前端传递参数,由于控制器层类实现了struts2的ModelDriven而产生的一个异常
- SpringMVC注解