We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 123c00b commit 6b5d921Copy full SHA for 6b5d921
day03-高并发还得用epoll.md
@@ -1,7 +1,7 @@
1
# day03-高并发还得用epoll
2
3
在上一天,我们写了一个简单的echo服务器,但只能同时处理一个客户端的连接。但在这个连接的生命周期中,绝大部分时间都是空闲的,活跃时间(发送数据和接收数据的时间)占比极少,这样独占一个服务器是严重的资源浪费。事实上所有的服务器都是高并发的,可以同时为成千上万个客户端提供服务,这一技术又被称为IO复用。
4
-> IO复用和多线程有相似之处,但绝不是一个概念。IO复用是针对IO借口,而多线程是针对CPU。
+> IO复用和多线程有相似之处,但绝不是一个概念。IO复用是针对IO接口,而多线程是针对CPU。
5
6
IO复用的基本思想是事件驱动,服务器同时保持多个客户端IO连接,当这个IO上有可读或可写事件发生时,表示这个IO对应的客户端在请求服务器的某项服务,此时服务器响应该服务。在Linux系统中,IO复用使用select, poll和epoll来实现。epoll改进了前两者,更加高效、性能更好,是目前几乎所有高并发服务器的基石。请读者务必先掌握epoll的原理再进行编码开发。
7
> select, poll与epoll的详细原理和区别请参考《UNIX网络编程:卷1》第二部分第六章,游双《Linux高性能服务器编程》第九章
0 commit comments