我是靠谱客的博主 隐形大侠,最近开发中收集的这篇文章主要介绍python >>> signal 简单小记signal 简介示例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

signal 简介

之前在python >>> multiprocessing,实现多处理器并行执行多进程 中实现了进程的创建和终止,但是我们该如何让一个进程被终止前捕获到这个终止信号,并作出一些后续操作呢?

python 当中提供了signal 机制,signal 实际上是一种软中断机制,用来通知进程发生了异步事件。我们可以通过在程序中注册一个信号监听器,当进程收到对应信号即做出相应操作。
(当我们在用[Ctrl + C] 终止一个程序的执行,其实就是向程序进程发送了SIGINT 信号使其终止)

示例

def signal_handler(signalnum, frame):
    print(signalnum)
    print(frame)
    print("Stopping")
    dev1.ungrab()
    sys.exit(0)

signal.signal(signal.SIGINT, signal_handler)

在该代码段中,我们定义了一个方法,并在下面对SIGINT 信号进行监听,当进程捕获到用户按下[Ctrl + C] 所发出的SIGINT 信号时,即执行signal_handler 方法中的程序(例如我这里就对某些获取到的外设资源进行必要的释放操作等)


除此之外,还有父进程对multiprocessing 子进程执行的terminate() 方法所释放的SIGTERM 信号等:

具体可参见:
http://www.voidcn.com/article/p-gjaeeqwv-xq.html
https://blog.csdn.net/wenzhou1219/article/details/81320622

最后

以上就是隐形大侠为你收集整理的python >>> signal 简单小记signal 简介示例的全部内容,希望文章能够帮你解决python >>> signal 简单小记signal 简介示例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部