PHP 上无限循环的 Pthreads 与 Parallel
Pthreads vs Parallel for infinite loops on PHP
我正在寻找一种在 PHP 上执行多线程的方法并遇到了 pthreads PHP API,我认为它很容易实现(但是我'我们将不得不找出如何安装支持 Debian 的 ZTS 的 PHP 版本)。
问题是,当我查看 pthreads php.net 文档时,我发现了这个:
Tip Consider using parallel instead.
我不知道的。
我的目标是获取项目列表,并为每个项目打开一个 websocket,永远监听某些更新。所以线程应该永远存在,如果被杀死,或停止,或者这样,它应该重新启动(但我认为我可以在外部处理)。
我不确定哪个最适合这种情况。有什么推荐吗?
首先要说的是,在您的应用程序的描述中没有任何内容要求使用线程,看来您真正想要的是异步并发:异步并发通常用于提高 I/O绑定代码,消除不必要的等待。并行并发通常用于通过利用更多内核来增加 CPU 绑定代码的吞吐量。
在PHP中实现non-blockingI/O有一些很好的框架,我推荐的是amphp。
当然,我可能无法完整描述您的应用程序,所以进入 pthreads 的主题:It is made obsolete by parallel,新项目应该使用并行。
免责声明:我写了 pthreads 和并行...
我正在寻找一种在 PHP 上执行多线程的方法并遇到了 pthreads PHP API,我认为它很容易实现(但是我'我们将不得不找出如何安装支持 Debian 的 ZTS 的 PHP 版本)。
问题是,当我查看 pthreads php.net 文档时,我发现了这个:
Tip Consider using parallel instead.
我不知道的。
我的目标是获取项目列表,并为每个项目打开一个 websocket,永远监听某些更新。所以线程应该永远存在,如果被杀死,或停止,或者这样,它应该重新启动(但我认为我可以在外部处理)。
我不确定哪个最适合这种情况。有什么推荐吗?
首先要说的是,在您的应用程序的描述中没有任何内容要求使用线程,看来您真正想要的是异步并发:异步并发通常用于提高 I/O绑定代码,消除不必要的等待。并行并发通常用于通过利用更多内核来增加 CPU 绑定代码的吞吐量。
在PHP中实现non-blockingI/O有一些很好的框架,我推荐的是amphp。
当然,我可能无法完整描述您的应用程序,所以进入 pthreads 的主题:It is made obsolete by parallel,新项目应该使用并行。
免责声明:我写了 pthreads 和并行...