PHP マルチプロセス問題解決_PHP チュートリアル
さらに、入力データが不正で、スクリプトがそれを検出できずに異常終了した場合も、非常に不快になります
それでは、どうすればよいでしょうか? 心配しないでください。マルチプロセスが役に立ちます。
それでは、なぜそうなるのでしょうか?
利点: 1. 複数のプロセスを使用する場合、子プロセスの終了後にカーネルがリソースを再利用します。プロセス全体のスレッドを終了します。
常駐のメイン プロセスは、プロセスを再構築する機会を持ちます。
では、その方法は明確です。次に、PHP が提供する POSIX および Pcntl シリーズの関数を使用して PHP コマンド パーサーを実装します。メイン プロセスはユーザー Enter を受け入れ、子プロセスをフォークして実行し、子の終了ステータスをエコーする責任があります。
コードは次のとおりです。わからないことがあれば、マニュアルの関連する機能を読むか、メッセージに返信してください
。コードは次のとおりです:
* @license http://www.zend.com/license/3_0.txt PHP ライセンス 3.0
* @バージョン 1.0.0
*/
/**この関数が SHELL でのみ実行できることを確認してください*/
if
(substr(php_sapi_name(), 0, 3) !== 'cli')
{
die("このプログラムは CLI モードでのみ実行できます")
}
/**CLI モードでは、このステートメントは実際には不要です。*/
$pid = posix_getpid( ); //メインプロセス ID を取得します
$user = posix_getlogin(); //ユーザー名を取得します
<<
フォークで実行する php コードを入力します新しいプロセス
input quit
Shell Executor バージョン 1.0.0 by laruence
EOD;
while
(true)
{
$prompt = "n{$user}$ ";
$input = readline($prompt);
readline_add_history ($input);
if
($input == '終了')
{
break;
process_execute($input . ';')
exit(0); $input )
{
$pid = pcntl_fork(); // サブプロセスを作成します
if
($pid == 0)
{// サブプロセス
$pid =
echo
"* プロセス{$pid} が作成され、Executed:nn";
eval($input); //解析コマンド
exit;
}
else
{//メインプロセス
$pid = pcntl_wait($status, WUNTRACED); / /子プロセスの終了ステータスを取得
if
(pcntl_wifexited($status))
{
echo
"nn* サブプロセス: {$return['pid']} が {$status} で終了しました
}
}
}
http://www.bkjia.com/PHPjc/320361.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/320361.html
さらに、入力データが不正でスクリプトがそれを検出できずに異常終了した場合は、どうすればよいでしょうか? 心配しないでください。マルチプロセスが役に立ちます。 、なぜこれが利点ですか... .

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、
