Home
Sign Up
Sign In
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member
Sign In
V2EX
›
johnshopkins
›
全部回复第 1 页 / 共 1 页
回复总数
3
2023 年 7 月 24 日
回复了
0littleboy
创建的主题
›
程序员
›
网络编程多个 epoll 线程有何作用?
epoll_wait 返回后,可以遍历触发事件的列表,结构体里面包含了套接字,(如果是 listen 套接字就说明有新晋的客户端需要建立新连接,如果是之前已经建立连接的 对端套接字,那这种情况下根据是可读可写标志做判断,如果读到零,说明客户机需要关闭连接,这种需要调用 shutdown 关闭套接字)。
2023 年 7 月 24 日
回复了
0littleboy
创建的主题
›
程序员
›
网络编程多个 epoll 线程有何作用?
@
julyclyde
不是 listen 完,有客户上来内核就自动做好 TCP 连接。这里必须由用户的进程主动调用 accept 函数(不管异步与否),然后由中断切换到系统调用 sys_accept4 返回客户机地址及套接字,这个过程没有 epoll 也是可以的,epoll 只是提高了效率,不是必要条件。
2023 年 7 月 11 日
回复了
0littleboy
创建的主题
›
程序员
›
网络编程多个 epoll 线程有何作用?
参照 nginx ,epoll_wait 专门一个 master 进程可以用作套接字的 三次握手、四次挥手;和读、写数据包的事件通知——仅仅做通知。
真正耗费时间的是读、写数据包和期间的业务处理过程,所以放到单独 worker 下最佳。可以显著避免阻塞 epoll_wait 进程。想要 高并发必须要做的。
About
·
Help
·
Advertise
·
Blog
·
API
·
FAQ
·
Solana
·
848 Online
Highest 6679
·
Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 10ms ·
UTC 21:31
·
PVG 05:31
·
LAX 14:31
·
JFK 17:31
♥ Do have faith in what you're doing.
❯