我正在创建一个服务器来将数据发送到许多持久套接字。我选择了REACTOR设计模式,建议有多个线程将数据发送到套接字。
我无法理解什么是更好的: - 让一个线程将所有数据发送到套接字 - 或者有几个线程可以通过套接字发送数据。
我看到它的方式是我有2个核心。所以我一下子只能做两件事。 Whcih意味着我有1个工作线程和1个线程来发送数据?
为什么在线程之间进行上下文切换时有多个线程来发送数据会更好?
答案 0 :(得分:0)
有关单线程非blocking IO is good的原因,请参阅thttpd上的文档。实际上它对静态文件很有意义。
但是,如果您正在进行CGI,则可能会有一个运行很长时间的脚本。没有阻止所有更快速的简单流量更好,特别是如果脚本中有无限循环错误并且最终会被杀死!使用线程 ,用户体验的平均响应时间将更好 - 如果某些请求非常耗时。
如果正在提供的文件来自磁盘并且不在主内存中,则可以使用类似的参数。