我正在尝试设置一个多线程套接字应用程序,但每当我运行它时,我都会收到错误,因为默认情况下pcntl_fork()
被禁用。这是因为它危险还是不稳定?我应该寻找其他方式来进行多线程,还是只是因为它不经常使用而被禁用?
答案 0 :(得分:2)
pcntl_fork()
不适用于多线程,它只是......好吧,请求当前进程。请务必查看documentation以获取有关该功能的更多信息。
默认情况下我能想到它是禁用的最好理由,这是因为PHP从未用于并行计算,它只是一种脚本语言(非常强大的语言)。正如马丁在his answer提出的类似问题所建议的那样,你最好不要运行CRON或其他程序。
答案 1 :(得分:0)
它只是一个不应该在普通的共享托管apache环境中使用的函数。分叉可能会克隆一个相当大的进程,除此之外,该功能可能会被滥用以降低配置不良的服务器(叉炸弹)。
使用它,例如在基于命令行的PHP脚本中完全没问题。