我在ubuntu linux上安装了一个php,运行良好,但现在我需要使用池类。
我在端口 80 上运行了普通的 php 和 apache 设置。我想使用池类创建 100 个工作线程来处理许多行 mysql 数据。
我应该像php -f file.php
这样的cli运行基于池类的程序,还是应该使用什么方法。
在端口 80 上向最终用户提供内容的普通 php 是否与在 php cli 上提供内容的普通 php 不同?
如果我从 CLI 运行池程序,运行基于池类的程序会占用普通的 php 资源吗?
在要求中
pthreads 需要使用 ZTS 构建 PHP(Zend Thread Safety) enabled ( --enable-maintainer-zts or --enable-zts on Windows )
依靠官方 PHP pthreads 页面:
警告 pthreads 扩展不能在 Web 服务器环境中使用。因此,PHP 中的线程处理应仅保留在基于 CLI 的应用程序上。
因此,通过CLI使用线程脚本是个好主意(这是唯一合理的方法)。 另请参阅此
我不明白你所说的"在端口 80 上向最终用户提供内容的普通 php 与在 php cli 上提供的普通 php 是否不同?"到底是什么意思——在端口 80 上,您的 Apache 服务器运行脚本并通过 HTTP/S 将输出提供给最终用户。在CLI中,默认STDOUT的输出可以相同,但只有您喜欢最终用户。
一个有 100 个工作人员的池将"吃掉"大量的系统资源。