ホームページ > バックエンド開発 > PHPの問題 > PHPでのpcntl_forkの詳しい説明

PHPでのpcntl_forkの詳しい説明

醉折花枝作酒筹
リリース: 2023-03-09 15:54:01
転載
2139 人が閲覧しました

この記事ではphpの「pcntl_fork」について紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。

PHPでのpcntl_forkの詳しい説明

pcntl_fork() 関数は、php-pcntl モジュールでプロセスを作成するために使用される関数です。 (Windows はサポート対象外です)

php_pcntl 拡張機能のインストールおよび有効化方法については、ここでは紹介せず、pcntl_fork() 関数自体の解析のみを行います。

$one = 123;
$one++;
$two = time();
$pid = [];
$pid = pcntl_fork();
$three = time();
ログイン後にコピー

pcntl_fork()関数が実行されると、子プロセスが作成されます。子プロセスは、現在のプロセス、つまり親プロセスに関するデータ、コード、状態をすべてコピーします。

pcntl_fork() が子プロセスの作成に成功すると、子プロセス番号が親プロセスに返され、子プロセスに 0 が返され、失敗した場合は -1 が返されます。

子プロセスは親プロセスのコード、データをコピーします。つまり、子プロセスと親プロセスが所有するコードとデータはまったく同じになります。

重要なポイント: 子プロセスは親プロセスのステータスをコピーします。次に、上記のサンプル コードがあります。 5 行目、pcntl_forkが実行され、create コードのサブプロセスも 5 行目から実行されます。 子プロセスがデータとコードをコピーしました。したがって、サブプロセス内には、$one、$two などの変数が同じように存在します。答えは 7 です。 Linux では、ps コマンドを使用して 8 つのプロセス (親プロセス 1 つ、子プロセス 7 つ) を表示できます。

理由: i = 0 0 の場合、親プロセスは子プロセスを作成します。この時点のプロセスはループを実行し続けます。独自の子プロセスを作成します。同様に、i=0 の場合、子プロセス 0 が作成され、このとき子プロセスはループを実行し続けます。独自の子プロセスを作成します。同様に、i=0 の場合、子プロセス 0 が作成され、このとき子プロセスはループを実行し続けます。独自の子プロセスを作成します。同様に、これは i=1 の場合にも発生します...

推奨学習:

php ビデオ チュートリアル

以上がPHPでのpcntl_forkの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート