python信号_python 之信号Signal
信号signal 是python进程间进行信号发送的一种机制,其原理是操作系统对进程的控制,是一种程序中断
一个进程一旦接收到信号就会打断原来的程序执行流程来处理信号。
那么singanl到底有什么用呢?
siganl的应用:
1.故障定位技术(进程的底层故障,例如进程突然中断和一些可能性较小的故障)
2. 对进程的流程控制
首先说说与信号signal有关的几个函数
(1)os.kill(pid,sig)
发送一个信号给某个进程
参数解析:
pid 指定发送信号的进程号
sig 要发送的信号代号(需要通过signal模块获取)
(2)signal.alarm(sec) 非阻塞函数
设置时钟信号,在一定时间后给自身发送一个SIGALRM信号
原理: 时钟的创建是进程交由操作系统内核(kernal)帮助创建的
时钟和进程之间是异步执行的,当时钟到时,内核会发送信号给进程,进程接收信号进行相应的响应操作.这就是所谓的python异步处理方案.
后面的时钟会覆盖前面的时钟,一个进程只有一个挂起的时钟
名词的理解:
异步: 程序在执行中利用内核功能帮助完成必要的辅助操作,不影响应用层持续执行
注意: 这里的同步和异步机制是相对多进程而言的.(注意与多线程的异步执行相区分,之后我会写写多线程的异步机制的相关文章)
在进程中通信这个概念下,只有singal是异步执行的,另外python进程间通信的机制还有pipe(管道),queue(队列),value(共享空间)等等
有机会会将这几种机制进行一个对比
(3)signal.pause()
阻塞进程,等待一个信号.当接收到信号时就会停止阻塞
例如:等待signal()函数的发送
(4)signal.signal(sig,handler)
当进程运行过程中出现故障异常或者需要进程间通信时,操作系统内核/进程发出处理信号
参数理解:
sig 要处理的信号名称
handler 信号处理方法 可选值: SIG_DFL 表示默认方法处理
SIG_IGN 表示忽略这个信号(一般为了避免父进程和子进程的互相干扰而使用)
func 自定义函数(实际上是回调函数的一类,信号发生时,调用处理函数,完成之后,回到原来的位置继续执行下面的程序)
自定义函数格式: (跟定义python普通函数的定义没有区别)
def func(sig,frame):
sig : 接收到的信号
frame: 信号结构对象(可以通过结构对象查看信号信息,基本不用)
signal函数实际上是一个异步处理函数,只要执行了该函数,则进程任意时候接收到相应信号都会处理
这里的异步就是上文提到的异步机制,是计算机内核程序与本进程间同时运行,互相不干扰的一种机制,对于进程的正常执行有着关键的作用。
这种异步机制在任何后端编程语言中都是存在的,只不过实现的方式和细节不一样而已。
那么singnal怎么用呢?
一般信号signal是在需要检测异常的程序的开头就定义好了,程序顺序向下运行时,一旦捕获到操作系统发出的signal或者其他进程发出的signal
马上就会停止当前的程序运行状态,去处理捕获到的signal。
来源:http://www.icode9.com/content-1-71401.html
python信号_python 之信号Signal相关推荐
- python信号处理教程_python 之信号Signal|python3教程|python入门|python教程
https://www.xin3721.com/eschool/python.html 信号signal 是python进程间进行信号发送的一种机制,其原理是操作系统对进程的控制,是一种程序中断 一个 ...
- Python标准库07 信号 (signal包,部分os包)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在了解了Linux的信号基础之后,Python标准库中的signal包就很容易学习 ...
- python在信号处理的应用_Python和信号处理程序
我需要一些关于python中的信号处理程序的澄清,因为我不确切地理解它们是如何工作的.如何使用它们以及有哪些限制.在 我打算在linux上使用USR信号,以便与作为服务在后台运行的python程序通信 ...
- Python学习-Scipy库信号处理signal(过滤、快速傅里叶变换、信号窗函数、卷积)
Python学习-Scipy库信号处理signal 目录 1.过滤:以某种方式修改输入信号 2.快速傅里叶变换 3.信号窗函数 4.卷积 导入库 import matplotlib.pyplot as ...
- Python分析离散心率信号(下)
Python分析离散心率信号(下) 如何使用动态阈值,信号过滤和离群值检测来改善峰值检测. 一些理论和背景 到目前为止,一直在研究如何分析心率信号并从中提取最广泛使用的时域和频域度量.但是,使用的信号 ...
- Python分析离散心率信号(中)
Python分析离散心率信号(中) 一些理论和背景 心率信号不仅包含有关心脏的信息,还包含有关呼吸,短期血压调节,体温调节和荷尔蒙血压调节(长期)的信息.也(尽管不总是始终如一)与精神努力相关联,这并 ...
- Python分析离散心率信号(上)
Python分析离散心率信号(上) 一些理论和背景 心率包含许多有关信息.如果拥有心率传感器和一些数据,那么当然可以购买分析包或尝试一些可用的开源产品,但是并非所有产品都可以满足需求.也是这种情况.那 ...
- python qt5 数据改变 触发信号_pyqt5自定义信号实例解析
本文研究的主要是pyqt5自定义信号实例解析的相关内容,具体介绍如下. PyQt5已经自动定义了很多QT内建的信号.但是在实际的使用中为了灵活使用信号与槽机制,我们可以根据需要自定义signal.可以 ...
- python 处理锯齿波信号
python 处理锯齿波信号 预期学习目标(ILO): 您应该 了解傅里叶分析在时域中周期性信号的基础,即如何将周期性时域信号分解为基频. 能够从头编程周期波形,并将其与"scipy&quo ...
最新文章
- 2022-2028年中国消防车行业市场前瞻与投资战略规划分析报告
- 如何从失焦的图像中恢复景深并将图像变清晰?
- 4、 LIMIT:限制查询结果的条数
- 【鬼网络】之Linux网络设置
- [bbk3100]第7集 - Chapter 04 - 介绍RAC中CVU工具的使用
- Flutter ColorTween实现颜色过渡动画效果
- 编译lzlib mysql5.6_CentOS下编译安装MySQL5.6
- Apache Struts 1宣告退出舞台
- Ubuntu-解决包依赖关系的三种办法
- Visual Studio自动生成XML类和JSON类
- GMP类有哪些最新发表的毕业论文呢?
- vhdl变量除法_在VHDL中实现高精度快速除法
- Taylor Swift为何听不到搜不到她的歌曲了?让我告诉你个好法子
- Hazelcast IMDG参考中文版手册-第四章-配置
- 分治算法解决问题(c语言)
- 光圈,快门, 曝光,焦距, ISO,景深。
- OD:修改 navicat 试用期
- 第五章.系统安全分析与设计
- 【学习笔记】:Multi-mode Transformer Transducer with Stochastic Future Context
- ellipse()用法