“我希望它用PHP或Java编写(我知道PHP不能做多个线程,但可以用多个进程完成)”。
这句话在说“多个过程”时意味着什么?那里有什么好的例子吗?
答案 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