php pcntl_alarm,pcntl_alarm定时闹钟信号详解
目的:主要测试pcntl_alarm的功能
测试代码一
declare(ticks = 1);
function signal_handler($signal) {
print "catch you ";
pcntl_alarm(5);
}
pcntl_signal(SIGALRM, "signal_handler", true);
pcntl_alarm(5);
while(1) {
}
?>
正确代码,证实每次pcntl_alarm预定一个计时器,然后当计时器到时间的时候,就会给当前进程触发SIGALRM信号
测试代码二
declare(ticks = 1);
function signal_handler($signal) {
print "catch you ";
// pcntl_alarm(5);
}
pcntl_signal(SIGALRM, "signal_handler", true);
pcntl_alarm(5);
while(1) {
}
?>
注释掉触发函数中的信号计时器,我们发现信号只触发了一次,这就说明pcntl_alarm只会一次触发
测试代码三
declare(ticks = 1);
function signal_handler($signal) {
print "catch you ";
// pcntl_alarm(5);
}
pcntl_signal(SIGALRM, "signal_handler", true);
pcntl_alarm(5);
sleep(100);
将while循环换成sleep,发现在5秒的时候信号触发,程序结束,这是为什么呢,对应手册中提到的注意点,pcntl_alarm信号会提前结束掉sleep()函数
测试代码四
之前发过文章说过declare和pcntl_signal_dispatch两个函数的区别,那么这里用后面一个函数实现呢?
function signal_handler($signal) {
print "Caught SIGALRM ";
pcntl_alarm(5);
}
pcntl_signal(SIGALRM, "signal_handler", true);
pcntl_alarm(5);
for(;;) {
sleep(100);
pcntl_signal_dispatch();
}
?>
这里我用到了一个特性 第一个特性就是sleep和SIGALRM信号之间的关系
其实你看可以去掉sleep,但是这样dispatch函数调用就太频繁,会对系统造成压力
php pcntl_alarm,pcntl_alarm定时闹钟信号详解相关推荐
- Android自定义定时闹钟开发详解
这篇文章主要为大家详细介绍了Android自定义定时闹钟开发,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Android开发之自定义闹钟实现,供大 ...
- 11.定时任务定时线程池详解
3.1 新增定时任务池 11.定时任务&定时线程池详解 当我们不用任务框架时,我们想自己写一个定时任务时,我们能想起那个工具类呢?Timer ?还有吗?不知道了,下面我们要讲下Schedu ...
- mysql数据库定点任务_MySQL数据库Event定时执行任务详解
一.背景 由于项目的业务是不断往前跑的,所以难免数据库的表的量会越来越庞大,不断的挤占硬盘空间.即使再大的空间也支撑不起业务的增长,所以定期删除不必要的数据是很有必要的.在我们项目中由于不清理数据,一 ...
- Java定时任务调度工具详解之Timer篇
Java定时任务调度工具详解之Timer篇 https://segmentfault.com/a/1190000009542398
- signal信号详解
signal信号详解本文引用其它网站. 信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断.从它的命名可以看出,它的实质和使用很象中断.所以,信号可以说是进程控制的一部分 ...
- SIGPIPE信号详解
SIGPIPE信号详解 当服务器close一个连接时,若client端接着发数据.根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进 ...
- Linux信号详解:signal与sigaction函数【2】
我们已经讨论了Linux操作系统中"信号"."中断"."僵尸进程"'等重要概念.结合C语言中的setjmp.longjump.sigsetj ...
- 轮毂电机光电增量编码器的ABZ信号详解
轮毂电机ABZ信号详解. 轮毂电机的定位使用了霍尔信号和光电增量编码器,1024线的.也就意味着,轮子转一圈,A信号和B信号各有1024个高电平和低电平. 实际应用中,我们将A/B信号的上升沿和下降沿 ...
- ASUS笔记本电路信号详解
ASUS笔记本电路信号详解 BATSEL_2P#:EC通过SM总线得知电池电量信息后,发出BATSEL_2P#信号,给充放电芯片,控制充电电流(控制ICTL). BATSEL_3S#:EC通过SM总 ...
- SIGPIPE信号详解及
SIGPIPE信号详解 当服务器close一个连接时,若client端接着发数据.根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进 ...
最新文章
- php 5.4 iis6,WIN2003+IIS6+FastCGI+PHP5.4的安装配置
- 一文带你入门图论和网络分析(附Python代码)
- mysql-python 安装错误: Cannot open include file: 'config-win.h': No such file or directory
- ListView 滑动的时候 变系统默认黑色,或是设置不变色
- hadoop官方文档_hadoop体系简介
- kali linux超级用户_如何优雅的在Linux上使用Powershell]
- 骆驼能站在鸡蛋上吗!?
- 开启linux ssh
- 字符串在Python中的本质是一个序列。 数字类型不是序列,不是可迭代对象,只能看做一个整体不可分割...
- 快手二面:@Component,@Service等注解是如何被解析的?
- Java中静态代码块、构造代码块的区别
- 【自我解析】2020年华为杯数学建模比赛E题
- 不用for循环快速合并txt文本文件
- python数据拟合方法_Python-最小二乘法曲线拟合【转载】
- windows7启动出现0xc000014c错误代码解决办法
- oracle中的取余函数MOD
- React实现微信扫码支付
- LVGL学习——初识动画 lv_anim_t
- weibo4j中用到的mysql2bean的java工具
- 无线充电宝当无线充电器哪个品牌好?快充无线充电宝推荐
热门文章
- 关于近日番茄花园洪磊被拘之事的一些个人看法
- 阿里架构大牛说:JVM从入门到入魔,就是这么简单
- 电影光盘的vob格式视频如何转换成mp4格式
- 分布式ID生成算法——雪花算法
- 邮件营销和网络广告的价值
- VMware安装Ubuntu 21.10
- js月份的计算公式_JavaScript getMonth() 方法
- Re27:读论文 LADAN Distinguish Confusing Law Articles for Legal Judgment Prediction
- 电信宽带连接数限制的一个坑
- Alibaba Cloud Linux 搭建Frp内网穿透服务(兼容Centos)