- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我了解 PHP 支持处理多个并发连接,并且可以根据服务器配置,如 answer 中所述。
服务器如何管理多个连接它是为每个请求派生一个子进程还是使用线程处理还是使用线程池处理?
linked answer说一个进程是 fork 的,然后评论中的作者说线程或进程,如果使用子进程、线程或线程池服务请求,这会让人感到困惑?
最佳答案
据我所知,每个网络服务器都有自己的处理多堆同时请求的方式。通常 Apache2 应该为每个新请求派生一个子进程。但是您可以按照链接的 StackOverflow 答案中提到的以某种方式配置此行为。
例如,Nginx 在一个线程中获取每个请求(像 Node.js 一样异步处理新连接)或者有时使用缓存(根据配置;Nginx 也可以用作负载平衡器或 HTTP 代理)。这是为您的应用程序选择合适的网络服务器的事情。
Apache2 可能是一个非常好的网络服务器,但是当你想在生产中使用它时,你需要更多的负载平衡。但它在具有多个持续时间短的连接或什至根本不更改(或使用缓存)的文档时也具有强大的功能。
Nginx 是非常好的,如果你希望有许多处理时间较长的持久连接。那时您不需要那么多负载平衡。
我希望,我能够帮助你解决这个问题;)
来源:
https://httpd.apache.org/docs/2.4/mod/worker.html
关于php - PHP 中如何处理并发请求(使用线程、线程池或子进程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33624684/
我是一名优秀的程序员,十分优秀!