我正在使用 PHP 的pthreads扩展。当我在 Windows 上执行 PHP 脚本时cmd
,我得到了并行线程,但是当我从 Apache 调用相同的脚本时,我得到了不同的结果,在我看来,这就像单线程执行。
我应该为 Apache 进行任何配置以获取类似cmd
(并行)的响应吗?
class AsyncOperation extends Thread {
public function __construct($arg){
$this->arg = $arg;
}
public function run(){
if($this->arg){
for($i = 0; $i < 50; $i++) {
echo "Yoo " . $this->arg . "<br>\n";
}
}
}
}
$thread = new AsyncOperation("World ----------");
$thread2 = new AsyncOperation("Second -------------------------");
$thread->start();
$thread2->start();
for($i = 0; $i < 100; $i++) {
echo "Standard <br>\n";
}
$thread->join();
$thread2->join();
示例代码给出如下响应cmd
:
Yoo World ----------<br>
Yoo World ----------<br>
Yoo World ----------<br>
Standard <br>
Standard <br>
Yoo World ----------<br>
Yoo Second -------------------------<br>
Standard <br>
Standard <br>
在网络浏览器中:
Yoo World ----------
Yoo World ----------
Yoo World ----------
Yoo World ----------
...
Yoo Second -------------------------
Yoo Second -------------------------
Yoo Second -------------------------
Yoo Second -------------------------
...
Standard
Standard
Standard
Standard
...
更新:在不同的浏览器上我得到不同的结果;这个问题可能与缓冲区有关,我将对此进行调查。