php 多进程中的信号有关问题
php 多进程中的信号问题
1.以下代码sleep时间远小于20
<?php // 当子进程退出时,会触发该函数function sig_handler($sig) { switch($sig) { case SIGCHLD: echo 'SIGCHLD received'."n"; }} pcntl_signal(SIGCHLD, "sig_handler");// 注册子进程退出时调用的函数$start = time(); $sub_process_cnt = 20;for($i=0;$i<$sub_process_cnt;$i++) { sleep(1); $pid = pcntl_fork(); if ($pid == 0) { exit(-1); }}$status = 0; for ($k=0; $k<$sub_process_cnt; $k++) { pcntl_waitpid(-1, $status );}$end = time();$usage = $end - $start;print "End, use: ".$usage." seconds" ; ?>
3.解决办法:
pcntl_signal(SIGCHLD, SIG_IGN ); //忽略子进程返回信号
全部代码如下
<?php // 当子进程退出时,会触发该函数function sig_handler($sig) { switch($sig) { case SIGCHLD: echo 'SIGCHLD received'."n"; }} pcntl_signal(SIGCHLD, SIG_IGN );// 注册子进程退出时调用的函数$start = time(); $sub_process_cnt = 20;for($i=0;$i<$sub_process_cnt;$i++) { sleep(1); $pid = pcntl_fork(); if ($pid == 0) { exit(-1); }}$status = 0; for ($k=0; $k<$sub_process_cnt; $k++) { pcntl_waitpid(-1, $status );}$end = time();$usage = $end - $start;print "End, use: ".$usage." seconds" ; ?>

ホット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提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

PHPCNTL でのフォーク失敗の一般的なエラーと解決策 プロセス管理に PHPCNTL 拡張機能を使用すると、フォーク失敗の問題が頻繁に発生します。 forkとは子プロセスを作成する方法ですが、場合によっては何らかのエラーによりfork操作が失敗することがあります。この記事では、いくつかの一般的なフォーク失敗エラーとそれに対応する解決策を紹介し、読者がこれらの問題をよりよく理解して対処できるように具体的なコード例を示します。 1. メモリ不足に関する考えられるエラー メッセージ: 可能

PHPCNTL 拡張フォーク関数の失敗原因の分析 PHP では、PCNTL 拡張機能はプロセス制御を処理するための一連の関数を提供します。フォーク関数はその中で一般的に使用される関数の 1 つです。 fork 関数を使用すると、特定のタスクを実行する子プロセスを作成できます。これは、同時ハンドラーを作成するときに非常に便利です。ただし、PCNTL の拡張フォーク機能を使用すると、フォークが失敗する場合があるため、この記事ではその原因を分析し、具体的なコードを示します。

注 1. Process クラスは、プロセス (プログラムの実行) をカプセル化する抽象クラス (すべてのメソッドが抽象) です。 2. Process クラスは、プロセスからの入力、プロセスへの出力の実行、プロセスの完了の待機、プロセスの終了ステータスの確認、およびプロセスの破棄のためのメソッドを提供します。例 Processp=null;try{p=Runtime.getRuntime().exec("notepad.exe");p.waitFor();}catch(Exceptione){e.printStackTrace();}System.out.println("印刷してもらいたいのですが…

PHPCNTL での無効な fork 関数のデバッグ スキルの共有 PHP プログラミングでは、PCNTL 拡張機能により、新しいプロセスの作成に使用できる fork 関数などのいくつかのプロセス制御関数が提供されます。しかし、使用中にフォーク関数が失敗し、子プロセスが正常に作成されない場合があります。この記事では、この問題の解決に役立つデバッグのヒントをいくつか紹介します。まず、簡単な例から始めましょう。次の PHP コードがあるとします。

PHPCNTL は、プロセス制御関連の関数を処理するために PHP によって提供される拡張ライブラリです。 PHP マルチプロセス プログラムを作成する場合、PCNTL ライブラリは、サブプロセスの作成、プロセス間の通信、プロセスのステータスの管理に役立ちます。ただし、PCNTL ライブラリを使用すると、フォークの失敗によりプログラム例外が発生する状況が発生することがあります。この記事では、この問題を詳しく掘り下げて修正し、具体的なコード例を示します。エラー現象 PHPCNTLライブラリを使用して子プロセスを作成する際、

申し訳ありませんが、PHPCNTL でのフォーク失敗の問題を解決する方法についての記事は提供できません。他にご質問がある場合やサポートが必要な場合は、お気軽にお知らせください。私に何ができるか教えてください!

不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没问题。
