ホームページ  >  記事  >  バックエンド開発  >  PHP はまずマルチスレッド pthreads 拡張機能を試します

PHP はまずマルチスレッド pthreads 拡張機能を試します

WBOY
WBOYオリジナル
2016-06-23 13:12:041028ブラウズ

pthread は、UNIX 風のマルチスレッド サポート ライブラリであり、PHP のマルチスレッド拡張サポート ライブラリとして使用できます。

php_pthreads-2.0.10-5.3-ts-vc9-x86.zip をダウンロードしました。コンピューターは 64 ビットです。つまり、このバージョンは php5.3.x スレッド セーフ (ts) バージョンをサポートしています。 , もちろん、名前にも 5.3-ts バージョンがマークされています。


インストール方法はこちらを参照してください

PHPインストールpthreadsマルチスレッド拡張機能チュートリアル

注: バージョンが新しすぎると、インストールが成功しない可能性がありますので、インストールしないでください。 phpの。


コードの一部でテストしてみましょう:

<?phperror_reporting(E_ALL ^ E_NOTICE);ob_implicit_flush();header('content-type:text/html;charset=utf-8');class AsyncTask extends Thread {  private $arg;  private $index;  public function __construct($arg){    $this->arg = $arg;    $this->index = 0;  }  public function run(){    if($this->arg){         while($this->index<10)    {    	  echo  microtime(true)."---线程ID:".(Thread::getCurrentThreadId())."---index=".$this->index."<br/>";    	 $this->index++;    }    }  }}$thread = new AsyncTask("Woker");if($thread->start()) { 	$index = 0; 	while($index<10){ 	    //在主线程输出红色文本 	    echo "<font color='red'>".microtime(true)."---主线程ID".(Thread::getCurrentThreadId())."--index=".$index."</font><br/>"; 	    $index++; 	} }else{ 	 echo "failed"; }?>


実行結果

時間出力を比較すると、次のことがわかりました。メインスレッドとサブスレッドマルチスレッド実行効果と一致していますが、結果の出力が対象です。



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。