2

我试图设置一个多线程套接字应用程序,但每当我运行它时,我都会收到一个错误,因为pcntl_fork()默认情况下是禁用的。这是因为它是危险的还是不稳定的?我应该寻找其他的多线程方式,还是因为它不经常使用而被禁用?

4

2 回答 2

2

pcntl_fork()不适用于多线程,它只是......好吧,分叉当前的进程。请务必查看文档以获取有关该功能的更多信息。

我能想到的最好的理由是默认禁用它,这是因为 PHP 从来都不是用于并行计算的,它只是一种脚本语言(一种非常强大的语言)。正如 Martin在类似问题中的回答所建议的那样,您最好运行 CRON 或其他程序。

于 2013-05-07T19:42:18.170 回答
0

它只是一个不应该在普通共享托管 apache 环境中使用的功能。在那里分叉可能会克隆一个相当大的进程,此外还可以滥用该功能来关闭配置不当的服务器(分叉炸弹)。

例如在基于命令行的 PHP 脚本中使用它是非常好的。

于 2013-05-07T19:42:19.793 回答