![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
NIO
文章平均质量分 80
学习记录
GuochaoHN
Take nothing for granted. Know that the harder you work, the luckier you'll get.
展开
-
Java NIO——通信实例:多人聊天室
目录服务器客户端基本步骤:服务器//服务器端public class ChatServer { //服务器端启动的方法 public void startServer() throws IOException { //1 创建Selector选择器 Selector selector = Selector.open(); //2 创建ServerSocketChannel通道 ServerSocketCha原创 2021-11-18 19:32:18 · 516 阅读 · 0 评论 -
Java NIO——通道Channel:网络Channel通信(重点)
目录IO的阻塞与非阻塞NIO网络通信没有使用Selector的阻塞NIO通信:非阻塞NIO通信:IO的阻塞与非阻塞传统的 IO 流都是阻塞式的。也就是说,当一个线程调用 read() 或 write() 时,该线程被阻塞,直到有一些数据被读取或写入,该线程在此期间不能执行其他任务。因此,在完成网络通信进行 IO 操作时,由于线程会阻塞,所以服务器端必须为每个客户端都提供一个独立的线程进行处理,当服务器端需要处理大量客户端时,性能急剧下降。Java 中新建一个线程,new Thread( Runnabl原创 2021-11-18 18:39:17 · 1270 阅读 · 0 评论 -
Java NIO——通道Channel:本地FileChannel
目录什么是通道什么是通道通道(Channel):由 java.nio.channels 包定义的。Channel 表示 IO 源与目标打开的连接。Channel 类似于传统的“流”。只不过 Channel 本身不能直接访问数据,Channel 只能与Buffer 进行交互。通道的引入:早期的操作系统,所有的IO接口全部都由CPU独立负责,当发起大量的读写请求时,CPU的占用率会非常的高。CPU就无法高效地处理其他事务。(CPU 被大量的IO请求中断,从内存读入数据,经过运算完之后再传给内存,)之原创 2021-11-15 18:53:54 · 730 阅读 · 0 评论 -
Java NIO——缓冲区Buffer
目录什么是Java NIO什么是Java NIOJava NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。Java NIO系统的核心在于:通道(Channel)和缓冲区(Buffer)。通道表示打开到 IO 设备(例如:文件、套接字)的连接。若需要使用 NIO 系统,需要获取用于连接 I原创 2021-11-11 17:10:56 · 940 阅读 · 0 评论