ホームページ  >  記事  >  php教程  >  PHP でスレッド マルチスレッド拡張機能をインストールするための基本チュートリアル

PHP でスレッド マルチスレッド拡張機能をインストールするための基本チュートリアル

高洛峰
高洛峰オリジナル
2016-12-21 11:54:291334ブラウズ

1. pthreads 拡張機能をダウンロードします

ダウンロード アドレス: http://windows.php.net/downloads/pecl/releases/pthreads

2. PHP が ts バージョンであるか nts バージョンであるかを確認します

phpinfo( ); 安全性項目。この項目は、スレッド セーフであるかどうかを確認します。有効な場合、一般的には ts バージョンである必要があり、それ以外の場合は nts バージョンである必要があります。

3. PHP tsnts バージョンに従って、対応する pthreads バージョンを選択します

私の php バージョンは 5.4.17 なので、php_pthreads-0.1.0-5.4-ts-vc9-x86.zip ファイル パッケージをダウンロードします (0.1.0)。は現在の pthreads バージョン番号を表し、5.4 は PHP バージョン番号を表します。ts は以前に PHP に対応すると判断された ts および nts バージョンを表します。vs9 は Visual Studio 2008 コンパイラによってコンパイルされたバージョンを表し、最後の x86 は 32-ビットバージョン。

4. pthreads 拡張機能をダウンロードします

ダウンロード アドレス: http://windows.php.net/downloads/pecl/releases/pthreads

5. pthreads 拡張機能をインストールします

php_pthreads.dll をディレクトリ binphpext にコピーします。
pthreadVC2.dll をディレクトリ binphp にコピーします。
pthreadVC2.dll をディレクトリ C:windowssystem32 にコピーします。
PHP設定ファイルphp.iniを開きます。最後に extension=php_pthreads.dll を追加します
ヒント! Windows システムでは、pthreadVC2.dll のパスを PATH 環境変数に追加する必要があります。 [マイ コンピュータ] --->マウスの右ボタン ---> [プロパティ] ---> [詳細設定] ---> 環境変数 --->システム変数 --->Path という名前のパスを検索 ---> ;編集--->変数値の末尾に pthreadVC2.dll のフル パスを追加します (私の場合は C:WINDOWSsystem32pthreadVC2.dll です)。

6. スレッドクラスを追加します

<?php
class Thread
{
  var $hooks = array();
  var $args = array();
  function thread()
  {
  }
  function addthread($func)
  {
    $args = array_slice(func_get_args(), 1);
    $this->hooks[] = $func;
    $this->args[] = $args;
    return true;
  }
  function runthread()
  {
    if(isset($_GET[&#39;flag&#39;]))
    {
      $flag = intval($_GET[&#39;flag&#39;]);
    }
    if($flag || $flag === 0)
    {
      call_user_func_array($this->hooks[$flag], $this->args[$flag]);
    }
    else
    {
      for($i = 0, $size = count($this->hooks); $i < $size; $i++)
      {
        $fp=fsockopen($_SERVER[&#39;HTTP_HOST&#39;],$_SERVER[&#39;SERVER_PORT&#39;]);
        if($fp)
        {
          $out = "GET {$_SERVER[&#39;PHP_SELF&#39;]}?flag=$i HTTP/1.1rn";
          $out .= "Host: {$_SERVER[&#39;HTTP_HOST&#39;]}rn";
          $out .= "Connection: Closernrn";
          fputs($fp,$out);
          fclose($fp);
        }
      }
    }
  }
}


7. pthreads 拡張機能をテストします

include(&#39;thread.php&#39;);
class AsyncOperation extends Thread {
  public function __construct($arg){
    $this->arg = $arg;
  }
  public function run(){
    if($this->arg){
      printf("Hello %s\n", $this->arg);
    }
  }
}
$thread = new AsyncOperation("World");
if($thread->start())
  $thread->join();

上記の内容は、PHP でスレッドマルチスレッド拡張機能をインストールする基本的なチュートリアルを紹介しています。

PHP インストール スレッド、マルチスレッド拡張機能の基本チュートリアルに関連するその他の記事については、PHP 中国語 Web サイトに注目してください。


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