admin管理员组文章数量:1122903
pcntl
pcntl_alarm — 为进程设置一个alarm闹钟信号
创建一个计时器,在指定的秒数后向进程发送一个SIGALRM
信号。每次对 pcntl_alarm()的调用都会取消之前设置的alarm信号。
<?phppcntl_signal(SIGALRM, function () {pcntl_alarm(2);echo 'Received an alarm signal !' . PHP_EOL;
}, false);pcntl_alarm(2);while (true) {pcntl_signal_dispatch();sleep(1);
}
上面程序的执行流程是:
1、首先pcntl_signal()函数注册一个SIGALRM信号到它的第二个参数(闭包函数)上去。-----意思就是:当你收到这个SIGALRM信号后,执行那个闭包函数。(首先,先去掉闭包函数中的 pcntl_alarm(2); 这一项,然后再加上这一项,两次做对比可以看大不同)然后闭包函数中是echo了一个字符串。
2、pcntl_alarm(2)的含义是,系统就会在 2 秒之后给当前进程发一个SIGALRM信号
3、一直循环调用pcntl_signal_dispatch()函数,去捕捉传进来的信号
4、捕捉到信息后,执行第一个中的闭包函数,该函数echo字符串后,再次调用pcntl_alrm(2),然后在过2秒钟后再次向当前进程发送一个SIGALRM信号,如果往复...(可以在linux命令行用:php demo.php测试下看看效果)
本文标签: pcntl
版权声明:本文标题:pcntl 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1687107332a64583.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论