興味深いphpマルチスレッド拡張pthreads
995 ワード
最近windwosの小さなプロジェクトがphpマルチスレッドを使っていて、pthreadsしか使えないオプションはありません.面白い穴に出会って、読んだ友达に役立つことを記録します.
1、メインスレッドにのみサブスレッドを作成
私はもともと自分のclassをzephirで拡張にコンパイルしようとしたが、このコードはちょうどthreadを継承し、呼び出し->start()プロンプトエラーを呼び出した.
2、2つのスレッド変数の名前は同じで、1つの実行(ブロック)しかできません.
出力結果:aaaaaaaaabcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcddddddddddddd
したがって,すべてのスレッドは事前に構築されなければならず,後でコード実行時にいつでも生成することは不可能であり,evalを使用しても無駄である.
1、メインスレッドにのみサブスレッドを作成
私はもともと自分のclassをzephirで拡張にコンパイルしようとしたが、このコードはちょうどthreadを継承し、呼び出し->start()プロンプトエラーを呼び出した.
2、2つのスレッド変数の名前は同じで、1つの実行(ブロック)しかできません.
class cct extends Thread {
private $c;
function __construct($c){
$this->c=$c;
}
public function run() {
while($i++<10){
usleep(100000);
echo $this->c;
}
}
}
function mkt($c){
$t = new cct($c);
$t->start();
}
$a = new cct("a");
$a->start();
$a = new cct("b");
$a->start();
mkt("c");
mkt("d");
出力結果:aaaaaaaaabcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcddddddddddddd
したがって,すべてのスレッドは事前に構築されなければならず,後でコード実行時にいつでも生成することは不可能であり,evalを使用しても無駄である.