この記事では主に 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 の正常な出力は、成功を示します。
以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです。
関連する推奨事項:以上がPHP7マルチスレッドチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。