ホームページ  >  記事  >  バックエンド開発  >  PHP7マルチスレッドチュートリアル

PHP7マルチスレッドチュートリアル

墨辰丷
墨辰丷オリジナル
2018-05-23 15:34:142216ブラウズ

この記事では主に PHP7 のマルチスレッド チュートリアルを紹介します。必要な方は参考にしてください。

私はずっ​​とクローラーを書きたいと思っていたので、PHP でクローラーを書きました。ご存知のとおり、PHP はマルチスレッドをサポートしていません。したがって、クロール効率は非常に低く、同時に 10 個のプロセスを実行すると、メモリと CPU の使用率が非常に高くなります。約 10 個のプロセスでクロールを開始し、クロール時間を最適化しましたが、それでも Mac Pro はほとんどダウンしてしまいました。 そこで、PHP7 を pthreads マルチスレッド ツールと組み合わせて使用​​し始めました。テスト後、安定性、効率、メモリ、CPU 使用率に非常に満足しました。 ここではPHP7のマルチスレッド環境構築について紹介します。

以下のコマンドはすべてrootユーザーで実行します。 PHP7の最新バージョンは7.0.3です。状況に応じてバージョンを選択してください。サポートされました。

wget http://ar2.php.net/get/php-7.0.3.tar.gz/from/this/mirror -O php.tar.gz
tar xvfz php.tar.gz
cd php

コンパイルしてインストールします。

オプションは自分で選択できるため、複数のバージョンの PHP を共存させることができます。ただし、maintainer-zts は、curl を除き、クローラーのみを実行する場合には、基本的にインストールする必要はありません。インストールできない問題が発生した場合は、自分で解決策を見つけることができます。たとえば、インストール中に iconv が見つからないことに遭遇したときは、インストールせずに実行しました。

./configure --prefix=/usr/local/php7 --without-iconv --enable-maintainer-zts --with-curl
make
make install

インストールが完了しました

次に、pthreadsのインストールを開始します。 pecl を使用したインストールは非常に簡単です。

cd /usr/local/php7/bin
./pecl install pthreads

インストールが完了しました

設定ファイル

/usr/local/php7/lib/ ディレクトリに新しい php.ini ファイルを作成します。初期ファイルは、次のルート ディレクトリにあります。 php ソース コードを編集します。php.ini -production 次に、php.ini を編集して追加します

extension="pthreads.so"

インストールが完了しました

インストールが成功したかどうかを確認します

実行します

/usr/local/php7/bin/php -m

モジュールのサポートリストを表示します。 pthreads が存在する場合、環境は正常に作成されます。 または、ファイル test.php

<?php
$thread = new class extends Thread { 
  public function run() { 
    echo "Hello World\n";
  }
};
$thread->start() && $thread->join();
?>

を編集します。Hello World の正常な出力は、成功を示します。

以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです。

関連する推奨事項:


phpの継承におけるデストラクターメソッドのパフォーマンスconstructor_phpスキル


PHP

MSSQLページングexample_phpスキル

phpリモートダウンロードクラス共有_phpスキル


以上がPHP7マルチスレッドチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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