2013-04-18 330 views
0

PHP服务器页面如何处理来自不同用户的多个请求?客户端 - 服务器PHP通信

我习惯于C语言,他们使用多线程。 PHP在这种情况下使用什么?

回答

6

PHP解释器通常由网络服务器(如apache,lighthttpd,...)调用。网络服务器然后处理请求(通过线程,分叉或其他)。 PHP的每个实例都按顺序运行,因此没有内置的多线程。

存在PECL扩展https://github.com/krakjoe/pthreads,它向PHP添加了多线程。

+0

谢谢您的信息! – Taras

+1

我只想补充一点,在PHP手册中也存在线程化的文档:http://php.net/pthreads,另外,git上有许多可用的例子,并通过pthreads分发,还有很多有用的在github上的问题列表中的主题也是如此,所有非常好的阅读:) –

1

这真的取决于您用来处理这些请求的服务器。 PHP本身不处理请求,而是用于解析脚本并返回结果。可以用PHP编写Web服务器,但是再次,这都取决于您使用的服务器。

1

这实际上是一个很好的问题。一旦多个用户尝试发送请求到同一台服务器,由于网络服务器创建了一个独立的进程,您可以为每个请求调用它自己的会话(不是php会话),因此不会发生任何冲突。 PHP与此无关,因为它只是一台机器最终翻译的脚本。

+0

PHP没有被某些机器翻译,它被解释。 – bwoebi

+0

翻译是做什么的?最后,它被翻译出来,想起每个计算行为的基本形式,没有例外。 – 2013-04-18 19:53:42

+1

翻译...没有。如果它会被翻译,那么你将得到例如可以被编译的C代码的结果。翻译PHP的一个流行示例是将PHP翻译为C++的HipHop。 – bwoebi