关于IO会涉及到阻塞、非阻塞、多路复用、同步、异步、BIO、NIO、AIO等几个知识点。知识点虽然不难但平常经常容易搞混,特此Mark下,与君共勉。
2025年06月13日
关于IO会涉及到阻塞、非阻塞、多路复用、同步、异步、BIO、NIO、AIO等几个知识点。知识点虽然不难但平常经常容易搞混,特此Mark下,与君共勉。
2025年06月13日
前言:
前面几篇文章已经详细讲解了Linux select和epoll机制,select和epoll两种IO复用方式用的人比较多,就像一家人一样,epoll相当于大哥,select相当于弟弟,而poll相当于二哥,家里的老二通常是很容易被忽视的对象,poll这种IO复用方式也很容易被忽视。
epoll机制效率高,适用于高并发场景,所以epoll机制广泛用于各种开源项目。
2025年06月13日
Introduction
在传统的网络服务器的构建中,IO模式会按照Blocking/Non-Blocking、Synchronous/Asynchronous这两个标准进行分类,其中Blocking与Synchronous基本上一个意思,而NIO与Async的区别在于NIO强调的是Polling(轮询),而Async强调的是Notification(通知)。譬如在一个典型的单进程单线程Socket接口中,阻塞型的接口必须在上一个Socket连接关闭之后才能接入下一个Socket连接。而对于NIO的Socket而言,Server Application会从内核获取到一个特殊的”Would Block”错误信息,但是并不会阻塞到等待发起请求的Socket Client停止。一般来说,在Linux系统中可以通过调用独立的
2025年06月13日
Java NIO(Non-blocking I/O或New I/O)是Java提供的用于执行非阻塞I/O操作的API,它极大地增强了Java在处理网络通信和文件系统访问方面的能力。NIO的核心之一就是多路复用机制(Multiplexing),这使得一个线程能够管理多个通道(Channel)的I/O操作。
2025年06月13日
select和poll都是 IO 多路复用的实现机制,用于监视多个文件描述符的状态变化,以实现高效的 IO 操作。它们的区别如下:
2025年06月13日
select、poll、epoll都是IO多路复用的机制。IO多路复用就是通过一种机制,让一个进程/线程可以监视多个描述符,一旦某个描述符就绪(一般是读写就绪),能够通知应用程序进行相应的读写操作。
2025年06月13日
在日常开发里,大家肯定碰到过这种情况:服务器要同时处理大量客户端接入请求,传统方法往往效果不佳,性能大幅下滑。其实,有个关键技术能有效解决这个难题,那就是 Netty 多路复用技术。今天,咱们就一起来深入探究探究。
2025年06月13日
目前常用的IO复用模型主要有三种:select/poll/epoll
首先这三种都是实现IO多路复用的方式;
IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,他就通知该进程。与多线程技术相比,IO多路复用最大的优势是系统开销小,系统不必创建核维护这些线程、进程,从而大大的减少系统的开销。
1.select模型