最近花了点时间研究了一下nio,及其开源框架MINA,现把心得总结如下: 1:传统socket:阻塞式通信 每建立一个Socket连接时,同时创建一个新线程对该Socket进行单独通信(采用阻塞的方式通信)。这种方式具有很高的响应速度,并且控制起来也很简单,在连接数较少的时候非常有效,但是如果对每一个连接都产生一个线程的无疑是对系统资源的一种浪费,如果连接数较多将会出现资源不足的情况。 example:
java 代码
client code:
java 代码
2.nio:非阻塞通讯模式 2.1NIO 设计背后的基石:反应器模式,用于事件多路分离和分派的体系结构模式。 NIO 的非阻塞 I/O 机制是围绕 选择器和 通道构建的。Channel 类表示服务器和客户机之间的一种通信机制。Selector 类是 Channel 的多路复用器。 Selector 类将传入客户机请求多路分用并将它们分派到各自的请求处理程序。 Selector 类将传入的客户机请求多路分用并将它们分派到各自的请求处理程序。简单的来说:NIO是一个基于事件的IO架构,最基本的思想就是:有事件我通知你,你再去做你的事情.而且NIO的主线程只有一个,不像传统的模型,需要多个线程以应对客户端请求,也减轻了JVM的工作量。
java 代码
2.2 nio example:
java 代码
client code:
|
nio socket 及其开源框架MINA学习总结(一)
最新推荐文章于 2024-11-12 19:05:09 发布
关键字: nio socket MINA