hongweipeng 发布的文章

Python内核阅读(二十五):信号处理机制


起步

Python处理信号是在 signal 模块中,这个模块其实是纯python代码对 _signal 的封装。要想知道Python解释器本身如何处理信号以及如何实现的,还需要去了解 signalmodule.c 。其中,比较需要了解的是python解释器与操作系统有关信号的交互。

大体上,Python解释器不太可能会操作系统发出的信号立即做回调。因为Python的Opcode操作是原子操作,不允许被中断。所以Python解释器对信号做一层封装,并做好标记,待时机得当的时候来检查并触发相关的回调函数。