【问题标题】:php why I get Class 'Thread' not foundphp 为什么我找不到“线程”类
【发布时间】:2017-11-23 05:29:57
【问题描述】:

我正在使用 php 版本 7 并定义了一个扩展 Thread 类的类,但是当我运行我的程序时,它给了我 Class 'Thread' not found 错误。我搜索并发现我必须在 apache 和 system32 中复制 pthreadVC2.dll文件夹并在 php/ext 和 system32 文件夹中复制 php_pthreads.dll 并将 extension=php_pthreads.dll 添加到 php.ini 。我做了所有这些工作,但我再次收到该错误。php_pthreads.dllpthreadVC2.dll 版本是 14

<?php
class exampleThread extends Thread
{
    var  $Mobile;
    var  $code;
    public function __construct($Mobile, $code)
    {
        $this->Mobile = $Mobile;
        $this->code = $code;
    }

    public function run()
    {

    }
};
?>

【问题讨论】:

  • 显示您的代码。
  • @urfusion 我编辑了
  • @urfusion 不是重复的。自 PHP 5.5 以来,情况发生了显着变化。
  • @duskwuff :我没有提出重复的标志。仅供参考。 :)

标签: php multithreading dll php-pthread


【解决方案1】:

正如duskwuff 的回答中所述,pthreads 扩展cannot be used in a web server environment

我们了大约 1 周,不幸的是不得不意识到,一旦它变得过于复杂,在 CLI 版本中运行它会导致太多问题 --> 我们停止并删除了 pthreads来自我们的环境。

我能给你的建议:
由于我们仍然需要多线程功能,因此我们检查了几种方法并结束使用curl multi functions

使用 curl 多功能,您可以实现完整的多线程执行 - 尤其是在我们的案例中 - 当您有很多内核 [我们有 48 个] 时,您确实可以在 spawn 时使用所有内核你用 curl 完成的任务...

PHP curl multi exec 文档很差。我指的是thread,您可以在其中获得更多信息。

【讨论】:

    【解决方案2】:

    The pthreads extension cannot be used in a web server environment. 仅在 CLI 中可用。

    无论你想做什么,你都需要想出另一种方法。

    【讨论】:

      猜你喜欢
      • 2015-01-04
      • 1970-01-01
      • 1970-01-01
      • 2014-06-26
      • 1970-01-01
      • 1970-01-01
      • 2017-09-18
      • 1970-01-01
      • 2017-07-15
      相关资源
      最近更新 更多