问个问题哟 不知道怎么标题应该怎么取

wtcsy 2013-02-18 04:48:57
就当时标题党吧

服务器上有一个php 文件 比如是1.php

当别人请求这个文件的时候
这个文件就会被执行 然后返回给客户端执行后的东西



我的问题是
当a客户访问的时候1.php的时候 这是服务器还没有执行完,
突然后b客户也来访问了 这是1.php是等返回了a的请求在执行b的请求了,还是可以同时执行b的请求

...全文
410 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wtcsy 2013-02-19
  • 打赏
  • 举报
回复
受教了.......
an9ryfr09 2013-02-18
  • 打赏
  • 举报
回复
其实这涉及到网络模型的问题了。 你知道为什么现在都推崇nginx来取代apache,为什么nginx处理并发问题比apache要强很多吗? 因为apache采用的是linux旧版本内核的select模型,而nginx采用的是2.6+版本的epool模型。 回到具体你说的这个问题上,如果b客户来访问时,服务器等待a客户的处理结果再接受b的请求,这就是select模型的工作方式。从接收到请求后之后,同一个进程会一直follow这整个握手过程,知道response结束。这种模型也很容易遭到ddos攻击。 而epool模型,是异步的。服务器接收到一个请求后,由一个主进程负责把任务合理分工开,有个负责分发任务的线程只负责分发任务,剩余的事情委托给其他线程去处理,其他线程处理完毕后,会callback一下主进程可以response了,然后返回给相应客户端。这样的工作方式,每个请求都不会相互阻塞。 不过这样解释后,你可能会不明白,难道说apache就没法处理并发任务了?一个请求阻塞了,其他的请求都进不来了?当然不是,apache worker模式下会开n个进程,所谓的阻塞,也只会阻塞住一个进程。但select模型的这种工作方式确实效率很低。 这部分知识,你可以去参考libevent
xuzuning 2013-02-18
  • 打赏
  • 举报
回复
同时执行b的请求

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧