PHP用にpthreads拡張機能を使用しています。私がWindows上でcmd
からPHPスクリプトを実行すると、私は並列スレッドを取得しますが、Apacheから同じスクリプトを呼び出すと、別の結果が得られ、それは私にはシングルスレッド実行のようです。PHP用のpthreadはApacheで並列スレッドを実行していません
cmd
(パラレル)のような応答を得るためにApacheに行うべき設定はありますか?
Yoo World ----------<br>
Yoo World ----------<br>
Yoo World ----------<br>
Standard <br>
Standard <br>
Yoo World ----------<br>
Yoo Second -------------------------<br>
Standard <br>
Standard <br>
:
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
で応答を与える
アップデート:私は別の結果を得る別のブラウザでは、この問題はbufferに関連している可能性があります。これについては調査します。
各非同期操作に1秒のスリープを入れますか? – Blacksonic
結果はかなり同じです。 –
混在した文字列の出力はどのようなものでしたか?スレッド関数で文字列を分割し、最初の文字列を出力してから数ミリ秒間スリープして2番目の文字列を出力します。 – SparKot