使用PHP执行并行事件的最简单方法是什么?

时间:2014-06-29 03:35:38

标签: php parallel-processing

问题很简单。我想在等待另一个任务完成时继续执行一个函数,就像在这个愚蠢的例子中一样:

#!/usr/bin/env php
<?php

$timer = function() {
  static $seconds = 0;
  while(1) {
    sleep(1);
    echo "\r", $seconds++;
  }
}

$timer(); // I want to run this in parallel

$service = new Service();
$response = $service->goGetSomething('from far far away');

// I want to kill the timer here

我一直在与其他语言进行并行处理,但不知道如何用PHP实现这一点。要求:

  • 尽可能使用最简单的解决方案,如果您仅使用默认启用的PHP扩展名,则为++。
  • 我不需要Windows支持:)

PS:不要告诉我使用不吸吮的nodejs或[your-favorite-language]:)

1 个答案:

答案 0 :(得分:0)

根据PHP的配置方式,它通常附加到单个线程(每个请求1个线程,因为这是一种Web脚本语言)。这意味着同步执行。

我能想到做这样的事情的唯一方法是加载一个执行AJAX调用的页面(其他线程是异步的)。在原始线程中我无法想到任何方法,因为根据定义,所有线程都是自闭的(线程A不知道线程B正在做什么,等等)