使用libev的多线程套接字服务器

兰斯攻击

我正在实现一个套接字服务器。所有客户端(最多10k)都应该保持连接状态。

这是我目前的设计:

  1. 主线程创建一个事件循环(默认情况下使用epoll)和一个观察器来接受客户端。
  2. 接受回调
    • 接受fd并将其设置为非阻止模式。
    • 为fd添加监视程序,以监视读取事件。
  3. 读回调
    • 读取数据并将任务添加到线程池以发送响应。

将读取的部分移到线程池是否可以,还是有其他更好的主意?谢谢。

索林

很难说。您不希望在后台运行1万个线程。您应该将读取的部分保留在主线程中。这样一来,如果所有客户端突然开始请求事务,那么您只会在线程池队列中堆积这些资源(最终不会同时运行10k个线程)。同样,由于避免了一些不必要的上下文切换(在自己的线程之间),您可能会因此获得更好的性能。

另一方面,如果您的客户端不太可能同时发送请求,或者答复非常简单,则每个客户端仅拥有一个线程可能会更简单,并且避免在主线程和线程池之间进行上下文切换。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在多线程套接字服务器上使用事件

来自分类Dev

C ++-套接字服务器线程

来自分类Dev

多线程TCP服务器:java.net.SocketException:套接字已关闭

来自分类Dev

在多线程HTTP服务器中发送后,如何干净地关闭套接字?

来自分类Dev

Java多线程套接字服务器,连接重置SocketException

来自分类Dev

在多线程套接字服务器中管理数据库连接

来自分类Dev

多线程客户端/服务器,套接字异常

来自分类Dev

多线程TCP服务器:java.net.SocketException:套接字已关闭

来自分类Dev

Java多线程套接字客户端/服务器:发送和接收Enummap对象

来自分类Dev

WSA发送到多线程iocp服务器中的所有已连接套接字

来自分类Dev

适用于Android的带有Delphi XE5的多线程服务器套接字

来自分类Dev

Android中的多线程服务器套接字,可从连接的客户端接收图像-不起作用

来自分类Dev

Java 多线程服务器 - 高 CPU 利用率和 java.net.SocketException:套接字已关闭

来自分类Dev

程序无法加入用于服务器套接字的线程

来自分类Dev

多线程服务器

来自分类Dev

多线程服务器

来自分类Dev

NodeJS 服务器是否使用多线程?

来自分类Dev

如何在Python中制作一个能记住客户端的简单多线程套接字服务器

来自分类Dev

python原始套接字使用的服务器主机

来自分类Dev

使用套接字从服务器请求文件

来自分类Dev

使用套接字从服务器请求文件

来自分类Dev

使用套接字.net的代理服务器

来自分类Dev

如何使用套接字从服务器读取数据?

来自分类Dev

如何使用另一个类初始化python线程套接字服务器?

来自分类Dev

使用套接字的客户端 - 服务器:线程“main”中的异常 java.io.EOFException

来自分类Dev

python扭曲多线程服务器

来自分类Dev

Java中的多线程服务器

来自分类Dev

多线程服务器Java

来自分类Dev

多线程Clojure Luminus服务器?

Related 相关文章

  1. 1

    在多线程套接字服务器上使用事件

  2. 2

    C ++-套接字服务器线程

  3. 3

    多线程TCP服务器:java.net.SocketException:套接字已关闭

  4. 4

    在多线程HTTP服务器中发送后,如何干净地关闭套接字?

  5. 5

    Java多线程套接字服务器,连接重置SocketException

  6. 6

    在多线程套接字服务器中管理数据库连接

  7. 7

    多线程客户端/服务器,套接字异常

  8. 8

    多线程TCP服务器:java.net.SocketException:套接字已关闭

  9. 9

    Java多线程套接字客户端/服务器:发送和接收Enummap对象

  10. 10

    WSA发送到多线程iocp服务器中的所有已连接套接字

  11. 11

    适用于Android的带有Delphi XE5的多线程服务器套接字

  12. 12

    Android中的多线程服务器套接字,可从连接的客户端接收图像-不起作用

  13. 13

    Java 多线程服务器 - 高 CPU 利用率和 java.net.SocketException:套接字已关闭

  14. 14

    程序无法加入用于服务器套接字的线程

  15. 15

    多线程服务器

  16. 16

    多线程服务器

  17. 17

    NodeJS 服务器是否使用多线程?

  18. 18

    如何在Python中制作一个能记住客户端的简单多线程套接字服务器

  19. 19

    python原始套接字使用的服务器主机

  20. 20

    使用套接字从服务器请求文件

  21. 21

    使用套接字从服务器请求文件

  22. 22

    使用套接字.net的代理服务器

  23. 23

    如何使用套接字从服务器读取数据?

  24. 24

    如何使用另一个类初始化python线程套接字服务器?

  25. 25

    使用套接字的客户端 - 服务器:线程“main”中的异常 java.io.EOFException

  26. 26

    python扭曲多线程服务器

  27. 27

    Java中的多线程服务器

  28. 28

    多线程服务器Java

  29. 29

    多线程Clojure Luminus服务器?

热门标签

归档