千家信息网

PHP中怎么实现一个信号中断系统

发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这期内容当中小编将会给大家带来有关PHP中怎么实现一个信号中断系统,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。中断系统跟PHP没有关系啊,不过PHP官方的pcnt
千家信息网最后更新 2025年02月04日PHP中怎么实现一个信号中断系统

这期内容当中小编将会给大家带来有关PHP中怎么实现一个信号中断系统,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。


中断系统跟PHP没有关系啊,不过PHP官方的pcntl扩展支持了,一般把正在执行的程序称为主程序,当中断源【比如键盘按下ctrl+c,ctrl+z等产生的硬件中断事件】发起一个中断请求事件【中断信号】,主程序会接受这个中断请求并停止当前正在运行的程序,然后转到中断服务程序去运行【中断响应】,中断服务程序也称为中断处理程序,程序打断的地方称为断点,中断服务程序处理完成后返回断点处继续执行,称为中断返回。

以上就是一个完整的中断处理过程。

中断源
硬件产生的中断:键盘【大部分人只能接触这些啦,如ctrl_c,ctrl+z产生的中断SIGINT,SIGTSTP等】
软件产生的中断:某个进程的子进程退出产生中断,定时信号,或是通过kill发出的中断或是在一个进程向另一个进程发出的中断,文件描述符变化产生中断等。

中断信号:

信号列表说明



中断处理:
1、执行默认动作
2、忽略
3、执行用户自定义的信号处理函数 【捕获】

中断信号的处理例子【PHP手册】

echo "安装信号处理器...\n";
pcntl_signal(SIGHUP, function($signo) {//中断处理程序
echo "信号处理器被调用\n";
});

echo "为自己生成SIGHUP信号...\n";
posix_kill(posix_getpid(), SIGHUP);//产生中断请求

echo "分发...\n";
pcntl_signal_dispatch();

echo "完成\n";

信号集和阻塞:
1、信号递达时处理的动作
2、信号未决集
3、信号阻塞集

进程可以选择阻塞某个信号,阻塞的信号,当产生时将会放在未解决集,除非已经解除阻塞,才能捕获到。
信号集操作
1、初始化一个信号集 【sigemptyset】
2、添加/删除信号 【sigaddset,sigdelset】
3、判断某个信号是否属于某个集合里 【sigismember】
4、信号集阻塞函数 sigprocmask 【pcntl_sigprocmask】
5、未决信号集sigpending
6、信号处理函数signal,sigaction【pcntl_signal】

信号阻塞测试:【信号无法递达,只能在未决集合里,可以查看/proc/PID/status对信号的处理】

检测一个进程是否存在【向进程组发送信号】
posix_kill(posix_getpid(), 0);

信号【软中断】的局限性:
1、信号的系统开销太大。
2、发送信号的进程要进行系统调用。
3、内核要中断接受信号的进程,而且要管理它的堆栈,同时还要调用处理程序,后之还要恢复被执行的中断的进程。
4、信号的数量非常有限【linux支持64个】
5、信号能传输的信息量非常有限,用户产生的信号不能附加各种信息及参数。

上述就是小编为大家分享的PHP中怎么实现一个信号中断系统了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

信号 处理 进程 程序 阻塞 系统 函数 服务 主程序 事件 信号处理 信号处理器 信息 内容 动作 处理器 就是 断点 有限 正在 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 计算机敏捷网络技术 山西同步网络时钟服务器地址 第一次玩服务器被大佬操作惊呆 广西轩通互联网科技有限公司 如何获取服务器上的信息 玩数据库适合用什么电脑 河南万象互联网科技有限公司 深圳联通公司软件开发待遇 最新网络安全标语 阿里云服务器学生价 腾讯网络安全总工程师 网络安全管理对象包括 网络安全主题宣传校园歌曲 互联网科技发展的历史 php内存数据库 普陀区会计软件开发销售价格 浙江应用软件开发培训 政府统计软件开发语言 软件开发的岗位设置 java图片浏览器数据库 我的世界拔刀剑服务器哪里有 软件开发阶段时间占比 软件开发文档管理ios 小学国家网络安全宣传周活动美篇 计算机网络技术整体评估 相册中的数据库是什么 周北安网络安全 中兴西安软件开发待遇怎么样 python快速数据库开发 为企业选择合适的服务器
0