设为首页 收藏本站
查看: 653|回复: 0

[经验分享] thread

[复制链接]

尚未签到

发表于 2018-12-17 09:09:23 | 显示全部楼层 |阅读模式
不同的web服务器处理高并发的HTTP请求的方式是不同的。一个相对流行的方式是使用线程处理请求——web服务器为每一个请求创建/销毁一个线程。Apache HTTP web服务器使用worker MPM支持多线程模型处理请求。Apache也支持使用prefork MPM,用进程来处理并发的请求——-服务器为每个请求创建/销毁一个进程。worker MPM和prefork MPM可以理解为Apache的工作方式。

也有不同的用于处理请求的并发模型(例如异步IO),不过就回答thread-safety PHP还是no thread-safety PHP版本选择来说,我们暂时只考虑上面提到的两种模型,以Apache HTTP服务器作为例子。

PHP本身是无法响应HTTP请求的,由web服务器响应请求。所以我们要做的就是配置web服务器转发请求到PHP那里进行加工,然后收到加工后的结果并返还回给用户。链接web服务器和PHP的方式有多种 。对于Apache HTTP服务器,最流行的方式是”mod_php”,PHP作为Apache的模块,可以使PHP正确的加载到web服务器中。
也有其它的方式链接PHP和Apache和其它的web服务器,但是mod_PHP是较流行的用法。
我们可能并没有了解太多的细节,因为linux发行版已经为们准备好了每件事情。
回到选用PHP版本问题上。mod_php可以正确的加载到Apache之中,如果Apache打算使用Worker MPM处理并发请求,PHP必须要能够操作多线程的环境----意味着PHP必须是thread-safety的才能够和Apache良好的协作。
这时候,你可能会想,好吧,我选用多线程的web服务器加载PHP,那么我必须选择thread-safety PHP。然而实际上,thread-safety PHP是广受争议的,当你选用它的时候,你最好真正的知道你到底在做什么。
当然,并不是不可以使用多线程的环境。如果你正在使用Nginx或Lighthttpd,你应该就不会想装载PHP到web服务器中,而是使用FastCGI或者一些等价的模型。
想看一些你的网站目前应用的是什么类型的,在服务器的目录下放一个包含的文件。然后查找API条目,在那里会提到一些类似于CGI/FastCGI或者Apache 2.0 Handler的东西。

最后,是选择thread-safety还是no-thread-safety的PHP呢?我并没有科学的答案,但是我猜测no-thread-safety的版本更快和更少的问题,不然的话,官方应该只提供thread-safety版本的了,也不会困扰我们让我们难以选择了。

  总结:

  •   Thread-safety 版本的PHP广受争议。
  •   Web服务器多线程工作模型可以使用其它的方案代替。
  •   选择no-threads-safety版本的PHP应该会快一些和更少的问题(这只是猜测)
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-652261-1-1.html 上篇帖子: PHP移动文件指针ftell()、fseek()、rewind()函数总结 下篇帖子: PHPExcel:用于Excel等文档生成的PHP开源类库!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表