PHP中的“多个进程”是什么?

时间:2010-01-23 10:58:08

标签: java php

“我希望它用PHP或Java编写(我知道PHP不能做多个线程,但可以用多个进程完成)”。

这句话在说“多个过程”时意味着什么?那里有什么好的例子吗?

3 个答案:

答案 0 :(得分:1)

一个或多或少程序启动的过程。例如,如果您启动Web服务器两次,您将有两个进程,它们可以同时响应不同的请求。

线程或多或少是进程内的子进程。这样,Web服务器通常具有来自不同用户的多个线程处理请求。这意味着只有一个进程可以同时处理多个请求。

答案 1 :(得分:0)

多进程意味着可能并行执行的多个进程。

“过程”只是程序的执行。

因此,多进程意味着程序的多次执行 - 并行,以实现某种多线程结果:而不是让一个程序有多个线程,这在PHP中是不可能的,你启动相同的程序不止一次并行(通常,程序的每个实例都将使用总数据的一部分)

答案 2 :(得分:0)

“多进程”的最佳示例是Apache httpd本身。启动它会启动一个“父”进程,然后启动一个或多个处理请求的“子”进程:

# ps auxfww | grep '[h]ttpd'
root      8632  0.0  0.2 247376  8380 ?        Ss   05:57   0:00 /usr/sbin/httpd
apache    8635  0.0  0.1 247376  4716 ?        S    05:57   0:00  \_ /usr/sbin/httpd
apache    8636  0.0  0.1 247376  4716 ?        S    05:57   0:00  \_ /usr/sbin/httpd
apache    8637  0.0  0.1 247376  4716 ?        S    05:57   0:00  \_ /usr/sbin/httpd
apache    8638  0.0  0.1 247376  4716 ?        S    05:57   0:00  \_ /usr/sbin/httpd
apache    8639  0.0  0.1 247376  4716 ?        S    05:57   0:00  \_ /usr/sbin/httpd
apache    8640  0.0  0.1 247376  4716 ?        S    05:57   0:00  \_ /usr/sbin/httpd
apache    8641  0.0  0.1 247376  4716 ?        S    05:57   0:00  \_ /usr/sbin/httpd
apache    8642  0.0  0.1 247376  4716 ?        S    05:57   0:00  \_ /usr/sbin/httpd