mina学习(一)

来源:互联网 发布:淘宝350模板自助开通 编辑:程序博客网 时间:2024/06/05 23:55

java.nio.* package包含以下内容:
1.Buffers :数据容器
2.Chartsets:可以设置bytes和Unicode的容器
3.Channels:代表连接实体的IO的操作能力
4.Selectors:提供可选择的,多路无阻塞的IO
5.Regexps:提供一些操作正则表达式的工具
在Mina框架中,主要关心Channels,Selectors和Buffers。

NIO Vs BIO
BIO(Blocking IO),依赖传统的Socket,常被用于阻塞模式:在Socket上读、写或者其他操作时,调用者会被执行的操作一直阻塞直到操作执行完成。
在某些情况下,对调用者来说,以下两点是至关重要的:1.在等待操作执行的过程中,可以做其他的事情;2.在操作执行完成之后,获得通知。
面对大量连接Socket时,NIO(Non-Blocking IO)提供了一种更好的方式来处理IO:不必针对每个连接创建一个特定的Thread,只需用非常少的Threads来完成同样的工作。

BIO与NIO最大的不同就是:在BIO模式下,发送一个请求,在得到响应之前必须一直等待。体现在服务端,这意味着一个Thread必须与任何到来的连接关联,好处就是你自己无须处理复杂的多路连接。在NIO模式下,你必须处理一个非阻塞系统的同步特性,这意味着当某些事件发生时,你的应用将要被触发。在NIO下,你无须调用和等待结果,你发送一个命令,当有结果时,会通知你。

Mina支持HTTP、XML、TCP、LDAP、DHCP、NTP、DNS、XMPP、SSH、FTP等协议。某种程度上,Mina不仅仅是一个NIO框架,更可以作为一个network layer来实现某些协议。

0 0
原创粉丝点击