问题很简单。我想在等待另一个任务完成时继续执行一个函数,就像在这个愚蠢的例子中一样:
#!/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实现这一点。要求:
PS:不要告诉我使用不吸吮的nodejs或[your-favorite-language]
:)
答案 0 :(得分:0)
根据PHP的配置方式,它通常附加到单个线程(每个请求1个线程,因为这是一种Web脚本语言)。这意味着同步执行。
我能想到做这样的事情的唯一方法是加载一个执行AJAX调用的页面(其他线程是异步的)。在原始线程中我无法想到任何方法,因为根据定义,所有线程都是自闭的(线程A不知道线程B正在做什么,等等)