php pthreads マルチスレッドのインストールと使用、pthreads マルチスレッド_PHP チュートリアル

WBOY
リリース: 2016-07-12 09:00:30
オリジナル
773 人が閲覧しました

php pthreads マルチスレッドのインストールと使用、pthreads マルチスレッド

Pthreads をインストールするには、基本的に PHP を再コンパイルし、--enable-maintainer-zts パラメーターを追加する必要がありますが、これを使用するためのドキュメントはほとんどありません。バグ 予期しない問題は生成環境でのみ解決できるため、実際のマルチスレッドについては、Python、C などを使用してください。

1. インストール

ここで使用されているのはphp-7.0.2です

リーリー

作成&&作成インストール

pthreadsをインストールする

pecl pthreads をインストールする

2. スレッド リーリー

3. ワーカーとスタッカブル

スタッカブルは、ワーカー スレッドによって実行されるタスクです。スタッカブル オブジェクトは、実行前、実行後、実行中に同期、読み取り、書き込みできます。 リーリー

4. ミューテックスロック


ミューテックスロックはどのような状況で使用されますか?複数のスレッドを制御する必要があり、同時に動作できるスレッドが 1 つだけである場合に使用できます。ミューテックスロックの有無による違いを示す簡単なカウンタープログラム

リーリー

複数のスレッドと共有メモリ


共有メモリの例では、ロックは使用されていないため、作業メモリの操作自体がロックの機能を持っている可能性があります

リーリー

5. スレッドの同期


一部のシナリオでは、thread->start() でプログラムの実行を開始したくないが、スレッドがコマンドを待機するようにしたい場合があります。 thread->wait(); のテスト関数は、スレッドが thread->start() の直後に実行されるのではなく、thread->notify();

によって送信されたシグナルを受信した後にのみ実行されます。 リーリー

6. スレッドプール


プールクラス

リーリー

動的キュースレッドプール


上記の例は、スレッド プールがいっぱいになったときに start を実行する例です。次の例は、スレッド プールに空き領域ができ次第、新しいスレッドを作成します。

リーリー

pthreads プールクラス

リーリー

7. マルチスレッドのファイルの安全な読み取りと書き込み

LOCK_SHは共有ロックを取得(プログラム読み込み)


LOCK_EX 排他ロックを取得(

で書かれたプログラム)

LOCK_UN はロックを解放します (共有か排他かに関係なく)


ロック時に flock() をブロックしたくない場合は LOCK_NB

リーリー

8. マルチスレッドとデータ接続


pthread と pdo を同時に使用する場合は、public static $dbh を静的に宣言し、シングルトン モードでデータベース接続にアクセスする必要があることに注意してください。


労働者とPDO

リーリー

プールとPDO


スレッドプール内のリンクデータベース

リーリー

上記のプログラムをさらに改善するために、シングルトン モード $this->worker->getInstance(); を使用してグローバルに 1 つのデータベース接続のみを作成し、スレッドは共有データベース接続を使用します

リーリー

データベースをマルチスレッドで動作させる概要


一般に、pthreads はまだ開発中であり、まだいくつかの欠点がありますが、pthreads の git がこのプロジェクトを継続的に改善していることもわかります。

永続的なデータベース接続は非常に重要です。そうでないと、各スレッドがデータベース接続を一度開いてから閉じることになり、多くの接続タイムアウトが発生します。

リーリー

ここではphp pthreadsマルチスレッドのインストールと使い方に関する関連知識を紹介し、今後も更新していきます。

興味があるかもしれない記事:

pthreads を使用して実際の PHP マルチスレッドを実装する (PHP 5.3 以降が必要)

http://www.bkjia.com/PHPjc/1093703.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1093703.html技術記事 php pthreads マルチスレッドのインストールと使用。pthreads マルチスレッドで Pthread をインストールするには、基本的に PHP を再コンパイルして --enable-maintainer-zts パラメーターを追加する必要がありますが、このドキュメントはほとんど使用されません。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート