従来のexec関数を利用して非同期処理でマルチスレッドを実現するPHPでマルチスレッドを実装する方法でマルチスレッドを実装できますが、exec関数自体は外部プログラムを実行するPHPでマルチスレッドを実装する方法関数です。 PHP マルチスレッドを実装する方法を詳しく見てみましょう。
推奨マニュアル: PHPでマルチスレッドを実装する方法完全独学マニュアル
まずは例を見てみましょう
<?PHPでマルチスレッドを実装する方法 class execMulti { function MultithreadTest { exec("PHPでマルチスレッドを実装する方法 static_massive.PHPでマルチスレッドを実装する方法 > /dev/null &"); echo "处理完成了"; } } ?>
上記の操作を行うと、時間のかかる処理が終了する前に処理完了が表示されます。
exec("PHPでマルチスレッドを実装する方法 static_massive.PHPでマルチスレッドを実装する方法 > /dev/null &");
">/dev/null&" によって返される値が欠落しているため、応答を待ちません。
したがって、時間のかかる処理よりも処理完了の表示が早くなります。
しかし、この方法では時間のかかる処理がいつ終わるかわかりません。
実行結果をユーザーに届けるために、ログ実行やDBへのログインなどの利用も忘れずに検討してください。
マルチスレッド化の方法(pthreads)
最後に、PHP拡張モジュールpthreadsを使用する方法を紹介します。
exec を使用する上記の方法よりも簡単です。
①環境設定とPHPでマルチスレッドを実装する方法のインストール
vagrantなどを利用してお好みの環境を用意してください。
PHPでマルチスレッドを実装する方法 は、マルチスレッドで安全な実装であるスレッドセーフ バージョンを使用する必要があります。
公式 Web サイトからスレッドセーフ バージョンの PHP をダウンロードします。
以下のコンテンツにアクセスし、画像の赤枠からダウンロードしてください。
http://www.PHPでマルチスレッドを実装する方法.net/downloads.PHPでマルチスレッドを実装する方法
さらに、スレッドセーフなインストールの場合は、 -enable- using を指定する必要があります。構成オプションのmaintainer-zts。
./configure --enable-maintainer-zts
必要に応じて、Apache および mysql オプションをインストールすることもできます。
次のコマンドを使用して PHPでマルチスレッドを実装する方法 のバージョンを確認してください。
PHPでマルチスレッドを実装する方法 -v
②pthreads のインストール
zip 形式をダウンロードしましょう。
https://github.com/krakjoe/pthreads/archive/master.zip
zip を解凍し、解凍されたファイルに移動し、PHPでマルチスレッドを実装する方法ize を実行します。
PHP モジュール リストで pthread を実行している場合は、次の操作を行うことができます。
PHPでマルチスレッドを実装する方法 -m
この部分の設定は環境によって異なりますので、環境名pthreadsなどで検索して情報を見つけてください。
③ マルチスレッドを使ってみる
例は次のとおりです
<?PHPでマルチスレッドを実装する方法 class pthreadsTest extends Thread { public function run () { sleep(5); } } $ts1 = new pthreadsTest(); $ts1->start(); $ts2 = new pthreadsTest(); $ts2->start(); ?>
sleep(5) が 2 回呼び出されるため、 10秒かかりますが、実際には5秒かかります。
おすすめ関連記事:
1.PHP でマルチスレッドを実装する方法
2.PHPでマルチスレッドを実装する方法 でマルチスレッドを実装する 3 つの方法
関連ビデオの推奨事項:
1.Dugu Jiijian(4)_PHP ビデオ チュートリアル
以上がPHPでマルチスレッドを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。