如何在Python中处理多个相同的未阻塞信号?

如何在Python中处理多个相同的未阻塞信号?,python,unix,signals,handler,Python,Unix,Signals,Handler,请参阅以下python代码: signal.pthread_sigmask(signal.SIG_BLOCK, range(1, signal.NSIG)) #block signals time.sleep(60) #waiting 60 seconds pending = signal.sigpending() #check how much signals in pending state 当应用程序处于睡眠状态时,我会发送五个SIGUSR1信号,但在挂起状态下我只收到一个SIGUSR1

请参阅以下python代码:

signal.pthread_sigmask(signal.SIG_BLOCK, range(1, signal.NSIG)) #block signals
time.sleep(60) #waiting 60 seconds
pending = signal.sigpending() #check how much signals in pending state

当应用程序处于睡眠状态时,我会发送五个SIGUSR1信号,但在挂起状态下我只收到一个SIGUSR1信号
我可以接收发送的所有SIGUSR1信号吗?

在Python中,通过信号模块不将一种类型信号的多个实例排队。当应用程序处于睡眠状态时,您将收到所有发送的信号,但在此之后,您只能检测到一个最新信号。

大多数信号不会将多个实例排队-它们只是挂起或不挂起。如果您需要对某事物的多个实例排队,则需要一个更通用的事件或消息传递框架。twalberg,谢谢!