当前位置:首页 - 购彩注册平台 - 正文

君子好学,自强不息!

进程间通信信号

2019-12-06 | 购彩注册平台 | admin | 8099°c
A+ A-

原始标题:PHP进程间通信-信号

信号

信号是系统调用。通常我们使用kill命令向进程发送信号。可以通过在linx/MAC中运行kill -l来检查特定信号。在以下示例中,父进程等待5秒钟向子进程发送sigint信号。子过程捕获信号并调制信号处理功能进行处理。

代码演示

$儿童名单=[];

$ parentId = posix _ getpid

//信号处理功能

函数签名处理器(签名)

$ pid = posix _ getpid

退出(“进程:{$pid},被终止,信号为{ $ sign } n”);

}

$ pid = pcntl _ fork

如果($pid == -1){

//未能创建子流程

退出(“分叉失败,退出!);

其他(pid == 0)

//子流程执行器

//寄存器信号处理功能

声明(刻度= 10);

pcntl_signal(SIGINT,“SignHandler”);//寄存器SIGINT信号处理功能

$ pid = posix _ getpid

而(真的)

echo“子进程{$pid}”,正在运行.......“n”;

睡眠(1);

展开全文

}

}其他{

$ child list[$ PID]= 1;

睡眠(5);

POSIX _ kill(PID,SIGINT);//向指定的进程发送信号

}

//等待子流程结束

而(!空(儿童列表){

$ PID = pcntl _ wait($ status);

如果($PID >;0){

未设置(儿童列表[$ PID]);

}

}

回应“子进程被父进程{$parentId}n杀死”;

运行结果

当父进程不发送信号时,子进程将总是循环输出“子进程正在运行...”。父进程发送信号后,子进程调用相应的回调函数进行处理,并在检测到信号进入时退出子进程。

声明(刻度= 10)

这里的记号=10可以理解为程序执行10个低级语句后,它检查是否有任何未执行的信号,如果有,就处理它们。

有关公告的详细解释(滴答= n),请参考(https://my.oschina.net/Jacker/blog/32936)并返回搜狐了解更多信息。

负责任的编辑:

这里是分享代码,在后台添加

本文来源:中富彩如何注册购彩票

本文地址:https://caizhucequiz.cn/post/32.html

关注我们:微信搜索“xiaoqihvlove”添加我为好友

版权声明:如无特别注明,转载请注明本文地址!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。


站点地图仟喜彩票 杏耀彩票网 人人中彩票 诚信网投 幸运彩票会员 宝马会 rjdd.netfuyoudl.comchunshanyuan.com0598xy.comdlywxx.comwoaimeizi.comnimaboke.comlw-sh.commuseum.caizhucedhcp.cnatlantis.caizhucese.cnmx5.2020meocaipiao.cnwww11.87dmcaipiao.cnmapi.caipiao778.cn