摘要: Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个channel,从而管理多个网络连接。 一. 为什么使用Selector? 仅用单个线程来处理多个Channels的好处是,只需要更少的线程来处理 阅读全文
posted @ 2018-10-21 16:42 Hermioner 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 一. Buffer介绍 Buffer,故名思意,缓冲区,实际上是一个容器,是一个连续数组。Channel提供从文件、网络读取数据的渠道,但是读取或写入的数据都必须经由Buffer。具体看下面这张图就理解了: 上面的图描述了从一个客户端向服务端发送数据,然后服务端接收数据的过程。客户端发送数据时,必须 阅读全文
posted @ 2018-10-21 16:16 Hermioner 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 一. Channel 在标准的IO当中,都是基于字节流/字符流进行操作的,而在NIO中则是是基于Channel和Buffer进行操作,其中的Channel的虽然模拟了流的概念,实则大不相同。 1.1 概念 Channel(通道)用于在字节缓冲区和位于通道另一侧的实体(通常是一个文件或套接字)之间有效 阅读全文
posted @ 2018-10-21 16:04 Hermioner 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 转自:https://www.cnblogs.com/aspirant/p/8630283.html 一、概念 NIO即New IO(非阻塞IO),这个库是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多。在Java AP 阅读全文
posted @ 2018-10-21 11:42 Hermioner 阅读(185) 评论(0) 推荐(0) 编辑