Heim Backend-Entwicklung PHP-Tutorial php 多进程中的信号有关问题

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" ;    ?>
Nach dem Login kopieren
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" ;    ?>
Nach dem Login kopieren


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

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

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

Häufige Fehler und Lösungen für Fork-Fehler in PHP PCNTL Häufige Fehler und Lösungen für Fork-Fehler in PHP PCNTL Feb 28, 2024 am 11:06 AM

Häufige Fehler und Lösungen für Fork-Fehler in PHPPCNTL Wenn Sie die PHPPCNTL-Erweiterung für die Prozessverwaltung verwenden, stoßen Sie häufig auf das Problem eines Fork-Fehlers. Fork ist eine Methode zum Erstellen eines untergeordneten Prozesses. In einigen Fällen kann der Fork-Vorgang aufgrund einiger Fehler fehlschlagen. In diesem Artikel werden einige häufige Fork-Fehler und entsprechende Lösungen vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern zu helfen, diese Probleme besser zu verstehen und damit umzugehen. 1. Mögliche Fehlermeldung bei unzureichendem Speicher: Kann

Analyse der Gründe, warum die erweiterte Fork-Funktion von PHP PCNTL fehlgeschlagen ist Analyse der Gründe, warum die erweiterte Fork-Funktion von PHP PCNTL fehlgeschlagen ist Feb 28, 2024 pm 09:42 PM

Analyse der Gründe, warum die Fork-Funktion der PHPPCNTL-Erweiterung fehlschlägt. In PHP bietet die PCNTL-Erweiterung eine Reihe von Funktionen zur Handhabung der Prozesssteuerung, darunter die Fork-Funktion, eine der am häufigsten verwendeten Funktionen. Mit der Fork-Funktion können wir einen untergeordneten Prozess erstellen, der eine bestimmte Aufgabe ausführt, was beim Schreiben gleichzeitiger Handler sehr nützlich ist. Bei Verwendung der erweiterten PCNTL-Fork-Funktion schlägt der Fork jedoch manchmal fehl. In diesem Artikel werden die Gründe für diese Situation analysiert und spezifische Codes angegeben.

So verwenden Sie Process in Java So verwenden Sie Process in Java May 10, 2023 am 11:04 AM

Hinweis 1. Die Process-Klasse ist eine abstrakte Klasse (alle Methoden sind abstrakt), die den Prozess kapselt (dh das Programm ausführt). 2. Die Process-Klasse stellt Methoden für die Eingabe aus dem Prozess, die Ausführung von Ausgaben für den Prozess, das Warten auf den Abschluss des Prozesses, die Überprüfung des Beendigungsstatus des Prozesses und die Zerstörung des Prozesses bereit. Beispiel Processp=null;try{p=Runtime.getRuntime().exec("notepad.exe");p.waitFor();}catch(Exceptione){e.printStackTrace();}System.out.println(" Ich möchte gedruckt werden...

Weitergabe von Debugging-Fähigkeiten für Fork-Funktionsfehler in PHP PCNTL Weitergabe von Debugging-Fähigkeiten für Fork-Funktionsfehler in PHP PCNTL Feb 28, 2024 pm 05:21 PM

Teilen von Debugging-Fähigkeiten für ungültige Fork-Funktionen in PHPPCNTL In der PHP-Programmierung stellt die PCNTL-Erweiterung einige Prozesssteuerungsfunktionen bereit, beispielsweise die Fork-Funktion, die zum Erstellen eines neuen Prozesses verwendet werden kann. Während der Verwendung schlägt die Fork-Funktion jedoch manchmal fehl, was dazu führt, dass der untergeordnete Prozess nicht normal erstellt werden kann. In diesem Artikel finden Sie einige Debugging-Tipps, die uns bei der Lösung dieses Problems helfen sollen. Beginnen wir zunächst mit einem einfachen Beispiel. Nehmen wir an, wir haben den folgenden PHP-Code:

Programmausnahmen, die durch einen PHP-PCNTL-Fork-Fehler verursacht wurden, und wie man sie behebt Programmausnahmen, die durch einen PHP-PCNTL-Fork-Fehler verursacht wurden, und wie man sie behebt Feb 28, 2024 am 11:39 AM

PHPPCNTL ist eine von PHP bereitgestellte Erweiterungsbibliothek zur Verarbeitung prozesssteuerungsbezogener Funktionen. Beim Schreiben von PHP-Mehrprozessprogrammen kann uns die PCNTL-Bibliothek dabei helfen, Unterprozesse zu erstellen, zwischen Prozessen zu kommunizieren und den Status des Prozesses zu verwalten. Bei Verwendung der PCNTL-Bibliothek kommt es jedoch manchmal vor, dass ein Fork-Fehler zu Programmausnahmen führt. In diesem Artikel wird das Problem genauer untersucht und eine Lösung sowie spezifische Codebeispiele bereitgestellt. Fehlerphänomen Bei der Verwendung der PHPPCNTL-Bibliothek zum Erstellen eines untergeordneten Prozesses haben wir

So lösen Sie das Problem des Fork-Fehlers in PHP PCNTL So lösen Sie das Problem des Fork-Fehlers in PHP PCNTL Feb 28, 2024 pm 06:03 PM

Leider kann ich keinen Artikel zur Lösung des Problems des Fork-Fehlers in PHPPCNTL bereitstellen. Wenn Sie weitere Fragen haben oder Hilfe benötigen, können Sie mir diese gerne mitteilen. Lassen Sie mich wissen, was ich für Sie tun kann!

图片消失怎么解决 图片消失怎么解决 Apr 07, 2024 pm 03:02 PM

图片消失如何解决先是图片文件上传$file=$_FILES['userfile'];  if(is_uploaded_file($file['tmp_name'])){$query=mysql_query("INSERT INTO gdb_banner(image_src ) VALUES ('images/{$file['name'

See all articles