为网页的每个请求创建新流程?

Dav*_*vid 9 php pid process

这可能是一个基本问题,但每次用户从服务器调用php文件时,它是否从该服务器创建一个新进程?

例如,我有一个基本形式(比如index.php),它将文本提交给另一个php文件.在那个php文件中,我打印了posix_getpid().

我打开了两个标签,我的index.php填写并提交了一个文本,最后我在每个标签上都有两个不同的pid.

这让我得出结论,服务器可能为每个脚本创建一个新进程.我对吗 ?

干杯!

ale*_*exn 6

我假设您正在运行Apache作为您的Web服务器.

当请求进来时,apache会启动一个新线程.然后在这个新的therad上调用PHP,这就是为什么每次都得到一个新的进程id.

当然,这大大简化了.

我建议你阅读文章有更深的了解.

编辑:似乎这个过程在平台之间有所不同.它的工作方式与我在Windows上面描述的方式相同,但在Unix上执行多个apache进程.

  • 好的,所以这是因为apache.但是你的解释对我来说有点奇怪,因为线程和进程是完全不同的.我的意思是,如果apache启动一个新线程,这意味着每个PHP脚本都应该有apache pid! (3认同)
  • 当他说"新线程"时,我也很困惑.每个进程都有一个主线程,所以我认为他的意思是每个请求创建一个"新主线程",从而创建另一个进程. (2认同)