当前位置: 首页 > news >正文

理解信号的

在日常生活中我们也经常面临许多的信号,手机通知、过红绿灯。。。这些信号在没有发生之前我们就知道这种信号产生我们需要干什么,那Linux里信号产生后,又怎么知道要做什么呢? -- 那当然是由程序员自己去设置啊

 由于我们的用户空间代码执行到任何地方都有可能收到信号,所以信号相对于进程的控制流程来说是异步。

 那这也意味着,当信号到来时,有可能我们的程序在做一件比较重要的事,这时就可能会暂缓处理这个信号

信号的处理方式: 默认 、忽略 、自定义


signal:

在我们平时运行一个进程时,我们想让它停下来,可以使用 CTRL + c (2),CTRL + \(3) 来停止它,为什么这两个操作就可以停止呢,当然是因为产生了信号,而这两个信号正对应停止操作

        signal函数可以自定义一个信号的处理方式,那如果我们把 2号和3号信号变成了我们自定义的处理方式,那是不是我们的进程就停不下来了呢。。

        其实不是的,9号信号依然可以杀死我们的进程,那如果我们自定义9号信号,是不是一个进程真的就杀不死了呢,hhh当然不是的,我们能想得到,那别人也能够想到,9号信号就是默认的处理方式,不可被更改

abort函数也是终止进程的函数,但是它不会有任何的清理工作,给自己发送终止信号6


实际执行信号的处理动作称为信号递达;

信号从产生到递达中间的状态成为信号未决;

信号被阻塞后会处于信号未决的的状态,直到进程解除对此信号的阻塞,才能完成信号递达

http://www.lryc.cn/news/43231.html

相关文章:

  • SpringSecurity学习(七)授权
  • 【Vue3】模板语法
  • Linux基础
  • Spark-序列化、依赖关系、持久化
  • 蓝桥杯刷题冲刺 | 倒计时16天
  • Java设计模式-12 、建造者模式
  • 一款全新的基于GPT4的Python神器,关键还免费
  • 上岸整理:2023前端面试题-vue,小程序,js,css
  • Linux下LED设备驱动开发(LED灯实现闪烁)
  • JavaEE-多线程中wait和notify都有哪些区别?
  • JavaScript实现列表分页(小白版)
  • Python调用GPT3.5接口的最新方法
  • Java开发 - 拦截器初体验
  • 【数据仓库-7】-- 使用维度建模的一些缘由
  • 【开发实践】在线考试系统(一) 生成错题知识点的思维导图
  • Java Web 实战 17 - 计算机网络之传输层协议(2)
  • MyBatis<3>:动态SQL的使用<if><trim><where><set><foreach>
  • 【超好懂的比赛题解】暨南大学2023东软教育杯ACM校赛个人题解
  • go-zero学习及使用中遇到的问题
  • CCF-CSP认证 202303 500分题解
  • 板内盘中孔设计狂飙,细密间距线路中招
  • 面试热点题:回溯算法 递增子序列与全排列 II
  • 怎么找回回收站删除的文件
  • dp-打家劫舍
  • C++预处理连接
  • 3、DRF实战总结:基于类的视图APIView, GenericAPIView和GenericViewSet视图集(附源码)
  • AutoSAR PduR -AutoSAR PDU常用的使用方式【发送,接收,网关】
  • 瑟瑟发抖吧~OpenAI刚刚推出王炸——引入ChatGPT插件,开启AI新生态
  • 脉诊(切脉、诊脉、按脉、持脉)之法——入门篇
  • 【十二天学java】day09常用api介绍