可以使用MPM Prefork模块中的PHP中的单线线程同时处理客户端连接



i正在研究php vs nodejs,即阻止与非阻滞结构,并在某个点上卡住。如果考虑Apache MPM Prefork模块,则PHP将产生一个新线程以服务每个请求。另一方面有libs,例如rachet,elephant.io,phpsocket.io,phpdeamon等。

但是,如果每个请求都在不同的过程(如果是预叉)或不同的线程(如果是工人或事件的情况下),那么这些LIB实际上是如何工作的?他们是使用IPC进行通信B/W过程还是线程?或实际上发生了什么?

实际上发生的事情是使我发疯。需要对此进行一些解释。

phpsocket.io不使用进程或轻重量流程(线程)。这是一个基于事件的服务器。

服务器作为单个线程执行,并在当前的开放连接集上等待新的连接/封闭连接/活动。当其中一个发生时,它会做出适当的响应,然后返回等待下一个事件。

最新更新