【问题标题】:PHP calling several functions at once? [duplicate]PHP一次调用几个函数? [复制]
【发布时间】:2013-05-31 08:39:03
【问题描述】:

我是 php 新手,正在尝试并行运行三个函数。我有一个类似于以下的代码:

Call function1(…….);  //all these function are located in separate host server
Call function2(…….);  
Call function3(…….);

以上所有功能将运行 5 分钟或更长时间。因此,我真的需要并行调用它们,否则我的程序将运行 15 分钟或更长时间。任何帮助将不胜感激。

【问题讨论】:

  • PHP 不是线程化/可并行化的语言。运行 3 个单独的 PHP 脚本,每个脚本调用其中一个函数。
  • 如果不知道您的示例中的“功能”到底是什么,很难推荐任何东西。在某些情况下,您可能需要寻找 Gearman 之类的东西,在某些情况下,您的特定交易工具中可能已经实施了一些“汇集”技术。
  • 这个问题的重复项太多了。先研究,再问。

标签: php host


【解决方案1】:

您可以使用pThread,这是一个很好的起点:

例子

$ts = array();
$ts[] = new Call("function1");
$ts[] = new Call("function2");
$ts[] = new Call("function3");

foreach($ts as $t) {
    $t->start();
}

foreach($ts as $t) {
    $t->join();
}

简单线程类

class Call extends Thread {

    function __construct($func) {
        $this->func = $func;
    }

    function run() {
        call_user_func($this->func);
    }
}

【讨论】:

  • 现在在生产中使用它一段时间......
  • @Baba 非常感谢您向我详细解释这一点。我试图在我的电脑上安装 pthread,我的 php 代码一直说Fatal error: Class 'Thread' not found。你能告诉我我应该安装什么来运行这个 pthread。我会非常感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 2011-03-21
  • 1970-01-01
  • 1970-01-01
  • 2013-11-14
  • 2011-09-16
  • 1970-01-01
  • 2017-06-14
  • 1970-01-01
相关资源
最近更新 更多