![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
文章平均质量分 81
clw_18
都挺好
展开
-
浅谈epoll的边沿触发与水平触发
使用epoll多路复用编程时,会用epoll_wait阻塞等待事件的发生,对应有边沿触发和水平触发两种工作模式。一、水平触发(EPOLLLT)水平触发:只要缓冲区有数据,epoll_wait就会一直被触发,直到缓冲区为空;水平触发(EPOLLLT)是epoll默认的工作模式,其优缺点如下:优点:保证了数据的完整输出;缺点:当数据较大时,需要不断从用户态和内核态切换,消耗了大量的系统资源,影响服务器性能;应用场景:应用较少,一般用于连接请求较少及客户端发送的数据量较少的服务器,可一次性接收所有数据原创 2021-01-06 23:31:12 · 4047 阅读 · 3 评论 -
muduo异步日志总结
muduo中的日志是指诊断日志,即通常用于故障诊断和追踪的日志,便于服务器发生故障时的线索追踪,是网络库中很重要的一个部分。在总结异步日志之前,首先应该清楚什么是异步日志?与同步日志又有什么区别?同步日志与异步日志同步日志:网络IO线程或业务线程直接向磁盘文件中写日志信息,只有等一条日志消息写完之后才能执行后续的程序。同步日志容易阻塞在磁盘IO上,效率较低且影响服务器性能,应尽量避免在服务器中多次使用磁盘IO。异步日志:网络IO线程或业务线程产生日志消息时,用一个缓冲区储存起来,等到合适的时机,用一原创 2020-12-20 23:05:04 · 962 阅读 · 1 评论 -
I/O多路复用模型—select、poll、epoll的原型详解及优缺点对比
一、select1、select函数原型详解int select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval *timeout);参数解释: maxfdp——传入参数,集合中所有文件描述符的范围,即最大文件描述符值+1 readfds——传入传出参数,select调用时传入要监听的可读文件描述符集合,select返回时传出发生可读事件的文件描述符集合 writefds——传入传出参数,s原创 2020-10-29 14:32:42 · 749 阅读 · 0 评论 -
select函数详解及使用案例
1、select函数原型int select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval *timeout);参数解释: maxfdp——传入参数,集合中所有文件描述符的范围,即最大文件描述符值+1 readfds——传入传出参数,select调用时传入要监听的可读文件描述符集合,select返回时传出发生可读事件的文件描述符集合 writefds——传入传出参数,select调用时传入要原创 2020-10-21 16:06:42 · 15884 阅读 · 3 评论