PHP用のpthreads拡張機能を使用しています。WindowsでPHPスクリプトを実行すると、cmd
並列スレッドが取得されますが、Apacheから同じスクリプトを呼び出すと、異なる結果が得られ、単一スレッドの実行のように見えます。
cmd
Apacheが(並列)のような応答を得るために作成する必要のある構成はありますか?
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>
Webブラウザの場合:
Yoo World ----------
Yoo World ----------
Yoo World ----------
Yoo World ----------
...
Yoo Second -------------------------
Yoo Second -------------------------
Yoo Second -------------------------
Yoo Second -------------------------
...
Standard
Standard
Standard
Standard
...
更新:ブラウザが異なれば、結果も異なります。この問題は、これから調査するバッファに関連している可能性があります。