Nginx使用epoll或其他多路复用技术(select)来处理多个客户端,即不像apache那样为每个请求生成一个新线程.
我尝试使用select在我自己的测试程序中复制相同的内容.我可以通过创建一个非阻塞套接字并使用select来决定服务哪个客户端来接受来自多个客户端的连接.我的程序只是将它们的数据回显给它们.它适用于小数据传输(每个客户端一些字节)
当我需要通过连接发送大文件到客户端时,会出现问题.由于我只有一个线程为所有客户端服务,直到我读完文件并将其写入套接字时,我无法恢复为其他客户端服务.
是否有针对此问题的已知解决方案,或者最好是为每个此类请求创建一个线程?