Rumah pembangunan bahagian belakang tutorial php 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" ;    ?>
Salin selepas log masuk
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" ;    ?>
Salin selepas log masuk


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

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

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

Ralat dan penyelesaian biasa untuk kegagalan garpu dalam PHP PCNTL Ralat dan penyelesaian biasa untuk kegagalan garpu dalam PHP PCNTL Feb 28, 2024 am 11:06 AM

Ralat dan penyelesaian biasa untuk kegagalan garpu dalam PHPPCNTL Apabila menggunakan sambungan PHPPCNTL untuk pengurusan proses, anda sering menghadapi masalah kegagalan garpu. Fork ialah kaedah mencipta proses anak Dalam sesetengah kes, operasi garpu mungkin gagal disebabkan oleh beberapa ralat. Artikel ini akan memperkenalkan beberapa ralat kegagalan garpu biasa dan penyelesaian yang sepadan, dan memberikan contoh kod khusus untuk membantu pembaca memahami dan menangani masalah ini dengan lebih baik. 1. Mesej ralat yang mungkin untuk ingatan tidak mencukupi: Boleh

Analisis sebab mengapa fungsi fork lanjutan PHP PCNTL gagal Analisis sebab mengapa fungsi fork lanjutan PHP PCNTL gagal Feb 28, 2024 pm 09:42 PM

Analisis sebab fungsi fork sambungan PHPPCNTL gagal Dalam PHP, sambungan PCNTL menyediakan satu siri fungsi untuk mengendalikan kawalan proses, antaranya fungsi fork adalah salah satu fungsi yang biasa digunakan. Melalui fungsi garpu, kita boleh mencipta proses kanak-kanak untuk melaksanakan tugas tertentu, yang sangat berguna apabila menulis pengendali serentak. Walau bagaimanapun, apabila menggunakan fungsi garpu lanjutan PCNTL, kadangkala garpu gagal Artikel ini akan menganalisis sebab untuk situasi ini dan memberikan kod tertentu.

Bagaimana untuk menggunakan Proses dalam java Bagaimana untuk menggunakan Proses dalam java May 10, 2023 am 11:04 AM

Nota 1. Kelas Proses ialah kelas abstrak (semua kaedah adalah abstrak) dan merangkum proses (iaitu, atur cara pelaksanaan). 2. Kelas Proses menyediakan kaedah untuk memasukkan daripada proses, melaksanakan output kepada proses, menunggu proses selesai, menyemak status keluar proses dan memusnahkan proses. Contoh Processp=null;try{p=Runtime.getRuntime().exec("notepad.exe");p.waitFor();}catch(Exceptione){e.printStackTrace();}System.out.println(" Saya mahu dicetak...

Perkongsian kemahiran nyahpepijat untuk kegagalan fungsi garpu dalam PHP PCNTL Perkongsian kemahiran nyahpepijat untuk kegagalan fungsi garpu dalam PHP PCNTL Feb 28, 2024 pm 05:21 PM

Berkongsi kemahiran nyahpepijat untuk fungsi garpu tidak sah dalam PHPPCNTL Dalam pengaturcaraan PHP, sambungan PCNTL menyediakan beberapa fungsi kawalan proses, seperti fungsi garpu, yang boleh digunakan untuk mencipta proses baharu. Walau bagaimanapun, semasa penggunaan, kadangkala fungsi garpu gagal, menyebabkan proses anak gagal dibuat secara normal. Artikel ini akan berkongsi beberapa petua penyahpepijatan untuk membantu kami menyelesaikan masalah ini. Mula-mula, mari kita mulakan dengan contoh mudah. Katakan kita mempunyai kod PHP berikut:

Pengecualian program yang disebabkan oleh kegagalan fork PHP PCNTL dan cara membetulkannya Pengecualian program yang disebabkan oleh kegagalan fork PHP PCNTL dan cara membetulkannya Feb 28, 2024 am 11:39 AM

PHPPCNTL ialah perpustakaan sambungan yang disediakan oleh PHP untuk mengendalikan fungsi berkaitan kawalan proses. Apabila menulis program berbilang proses PHP, pustaka PCNTL boleh membantu kami membuat sub-proses, berkomunikasi antara proses dan mengurus status proses. Walau bagaimanapun, apabila menggunakan perpustakaan PCNTL, kadangkala anda menghadapi situasi di mana kegagalan garpu menyebabkan pengecualian program. Artikel ini akan menyelidiki isu ini dan memberikan pembetulan, bersama-sama dengan contoh kod tertentu. Fenomena ralat Apabila menggunakan perpustakaan PHPPCNTL untuk mencipta proses kanak-kanak, kami

Bagaimana untuk menyelesaikan masalah kegagalan garpu dalam PHP PCNTL Bagaimana untuk menyelesaikan masalah kegagalan garpu dalam PHP PCNTL Feb 28, 2024 pm 06:03 PM

Maaf, saya tidak dapat menyediakan artikel tentang cara menyelesaikan masalah kegagalan garpu dalam PHPPCNTL. Jika anda mempunyai sebarang soalan lain atau memerlukan bantuan, sila beritahu saya. Beritahu saya apa yang boleh saya lakukan untuk anda!

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

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

See all articles