phpはマルチプロセスですか?

(*-*)浩
リリース: 2023-02-25 14:30:01
オリジナル
2483 人が閲覧しました

サーバー上でスクリプトを実行する場合、時間のかかるタスクが避けられず、複数のプロセスを使用することが不可欠です。 PHP5.5 以降、PHP は開発ニーズを満たすためにマルチプロセス要素を追加し始めました。

phpはマルチプロセスですか?

#注意

複数のプロセスを実装するには有効にする必要がある拡張機能: pcntl、ポジックス。 (推奨学習: PHP ビデオ チュートリアル )

PHP のマルチプロセス プログラミングは Windows 環境ではサポートされていません。この記事は主に Linux 環境で開発およびテストされています

簡単な構造図

phpはマルチプロセスですか?

##主な機能

##pcntl_fork: 複数のプロセスを作成します。2 つの項目は呼び出し後に返されるプロセスの pid、0 は子プロセス、0 より大きいは親プロセス (親プロセスは子プロセスの ID を取得するため、0 より大きい)、-1 は作成が失敗したことを意味します

$pid = $pcntlInstall ? pcntl_fork() : 0;if ($pid == -1) {
    //fork失败
 } elseif ($pid > 0) {
    //父进程
    ......
 } elseif ($pid == 0) {
    //子进程
    ......
 }
ログイン後にコピー

pcntl_signal: 信号処理コールバック関数を登録します。子プロセスの終了時に送信される信号をキャプチャできます。##
/配合pcntl_signal使用
declare (ticks = 1);

//当子进程退出时,会触发该函数,当前子进程数-1
pcntl_signal(SIGCHLD, function ($signo) {
    switch ($signo) {
        case SIGCHLD:
            echo $curChildPro . 'SIGCHLD', PHP_EOL;
            $curChildPro--;
            break;
    }
});
ログイン後にコピー

pcntl_wait: 親プロセスを一時停止し、子プロセスが終了するのを待つために使用されます

以上がphpはマルチプロセスですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!