gpt4 book ai didi

linux - epoll:我必须使用多线程吗

转载 作者:太空宇宙 更新时间:2023-11-04 12:27:30 31 4
gpt4 key购买 nike

我从here得到了基础知识关于 epoll。我知道epoll可以监控多个FD并处理。

我的问题是:重事件是否会阻塞服务器,所以我必须使用多线程?

例如,服务器的epoll正在监控2个套接字A和B。现在A开始向服务器发送大量消息,服务器开始读取它们。一秒钟后,B 也开始发送消息,而 A 仍在发送。在这种情况下,我需要为这些读取操作创建一个线程吗?如果我不这样做,是否意味着在 A 完成发送之前服务器没有机会从 B 获取消息?

最佳答案

如果您可以足够快地处理传入消息(没有阻塞调用,没有繁重的计算),则不需要单独的线程。否则,您将受益于多线程。

无论如何,了解当您只有一个线程并且无法足够快地处理消息时会发生什么情况会有所帮助。如果您使用 TCP 协议(protocol),向您发送数据的机器只会降低它们的传输速率。使用 UDP 时,一些传入的数据包会被丢弃。

关于linux - epoll:我必须使用多线程吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44218727/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com