在PHP中如何处理并发请求(使用线程,线程池或子进程)

前端之家收集整理的这篇文章主要介绍了在PHP中如何处理并发请求(使用线程,线程池或子进程)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我明白,PHP支持处理多个并发连接,并且根据服务器可以配置,如本 answer所述

服务器如何管理多个连接,它会为每个请求分配一个子进程,还是使用线程处理,还是使用线程池处理?

linked answer表示一个进程是分叉的,然后作者在评论中表示线程或进程,这使得混淆,如果请求是使用子进程,线程或线程池服务的?

我知道,每个网络服务器都有自己的处理多点同步请求.
通常Apache2可以为每个新请求分叉子进程.但是您可以按照您所链接的StackOverflow答案中提到的方式配置此行为.

例如,Nginx在一个线程中获取每个请求(像Node.js一样处理新的连接异常)或有时使用缓存(如配置的; Nginx也可以用作负载平衡器或HTTP代理).这是为您的应用选择正确的网络服务器.

Apache2可能是一个非常好的网络服务器,但是当您想在生产中使用Apache时,您需要更多的负载平衡.但是,当具有多个短持续连接或甚至根本不改变的文档(或使用缓存)时​​,它也具有良好的功能.

如果您期望许多持久的连接以某种程度上长的处理时间,Nginx是非常好的.那么你不需要太多的负载平衡.

我希望,我能够帮助你解决这个问题)

资料来源:

https://httpd.apache.org/docs/2.4/mod/worker.html

https://anturis.com/blog/nginx-vs-apache/

我建议你也看看:What is thread safe or non thread safe in PHP

原文链接:https://www.f2er.com/php/140238.html

猜你在找的PHP相关文章