php 多进程中的信号有关问题

Jun 13, 2016 am 11:33 AM
pcntl process quot

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" ;    ?>
ログイン後にコピー
2.原因:sleep过程中被子进程返回的信号中断。

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" ;    ?>
ログイン後にコピー


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

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

PHP PCNTL でのフォーク失敗の一般的なエラーと解決策 PHP PCNTL でのフォーク失敗の一般的なエラーと解決策 Feb 28, 2024 am 11:06 AM

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

PHP PCNTL拡張フォーク機能が失敗する原因の分析 PHP PCNTL拡張フォーク機能が失敗する原因の分析 Feb 28, 2024 pm 09:42 PM

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

Javaでプロセスを使用する方法 Javaでプロセスを使用する方法 May 10, 2023 am 11:04 AM

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

PHP PCNTL でのフォーク関数の失敗に対するデバッグ スキルの共有 PHP PCNTL でのフォーク関数の失敗に対するデバッグ スキルの共有 Feb 28, 2024 pm 05:21 PM

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

PHP PCNTL フォークの失敗によって引き起こされるプログラム例外とその修正方法 PHP PCNTL フォークの失敗によって引き起こされるプログラム例外とその修正方法 Feb 28, 2024 am 11:39 AM

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

PHP PCNTL でのフォーク失敗の問題を解決する方法 PHP PCNTL でのフォーク失敗の問題を解決する方法 Feb 28, 2024 pm 06:03 PM

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

不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没有关问题 不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没有关问题 Jun 13, 2016 am 10:15 AM

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

See all articles