在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 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
