我是PHP新手。我熟悉ASP.NET,它支持异步编程。也就是说,如果一个请求需要做一些I/O工作。建议使用BeginProcess/EndProcess方式对网页进行编程。异步编程是提高可伸缩性的关键。
我想知道在PHP世界中是否有异步编程(BeginXXXX/EndXXXX)的对应物。
发布于 2009-11-15 21:24:40
在PHP /EndXXX范式很大程度上依赖于线程,而在.NET上,我甚至不确定你能不能启动一个新的线程(也许除了PECL package)。
在大多数解释语言中,FastCGI是多线程的替代方案。它使用进程,而不是产生新的线程,但由于产生新进程的代价很高,它保留了一个可重用的进程池,就像.NET中的ThreadPool一样。
发布于 2009-11-15 23:38:48
如果对套接字或文件执行I/O,则应分别使用stream_socket_select()或stream_select() (类似于C/C++中的系统调用)。
下面是一个用PHP完成的简单命令行聊天教程:Simple PHP socket-based terminal chat
注意:这不是一般的多线程解决方案,而是需要“半并行”I/O的情况下的简单解决方案
发布于 2009-11-15 21:32:06
核心具有一组进程控制功能,包括派生进程的能力。我不知道我是否会在web脚本中使用它们,但我以前在命令行脚本中使用过它们。
http://www.php.net/manual/en/book.pcntl.php
http://www.php.net/manual/en/pcntl.example.php
https://stackoverflow.com/questions/1737519
复制相似问题