Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我试图设置一个多线程套接字应用程序,但每当我运行它时,我都会收到一个错误,因为pcntl_fork()默认情况下是禁用的。这是因为它是危险的还是不稳定的?我应该寻找其他的多线程方式,还是因为它不经常使用而被禁用?
pcntl_fork()
pcntl_fork()不适用于多线程,它只是......好吧,分叉当前的进程。请务必查看文档以获取有关该功能的更多信息。
我能想到的最好的理由是默认禁用它,这是因为 PHP 从来都不是用于并行计算的,它只是一种脚本语言(一种非常强大的语言)。正如 Martin在类似问题中的回答所建议的那样,您最好运行 CRON 或其他程序。
它只是一个不应该在普通共享托管 apache 环境中使用的功能。在那里分叉可能会克隆一个相当大的进程,此外还可以滥用该功能来关闭配置不当的服务器(分叉炸弹)。
例如在基于命令行的 PHP 脚本中使用它是非常好的。