Advertisement

JavaFX+NIO聊天室Reactor

阅读量:

设计思路

采用Java BIO进行通信存在一定的缺陷,其读取与写入操作均为阻塞式,导致服务器端必须按顺序逐一处理每个请求。若需同时与多个用户进行通信,则需要为每个请求单独开启线程。然而,当系统面临高并发访问时,线程切换所带来的开销将显著增加,因此该技术并不适用于高并发场景。鉴于此,我们选择使用NIO作为通信方式。Java NIO是JDK 1.4版本中引入的一种同步非阻塞I/O模型,同时也属于I/O多路复用模式的实现之一。其中的同步特性意味着在执行读取或写入操作时仍需等待程序处理完成才能返回结果;而Selector在检测哪些Channel具有数据时同样需要同步等待。所谓非阻塞特性则体现在从网络传输到内存的数据处理过程中,并未被程序直接控制,而是由操作系统负责管理。我们通过Selector进行循环遍历的方式获取哪些Channel接收到数据,并在检测到数据后立即进行处理。由于Netty框架也采用了NIO技术,因此我们同样选择NIO作为实现方式。
五种IO模型参考
IO模型理解参考
NIO参考

BIO学习

Socket通信是一种建立在TCP/IP网络层之上的数据传输机制,通常将TCP与UDP归类为传输层协议。Socket作为应用服务与TC

全部评论 (0)

还没有任何评论哟~