2015-10-01 25 views
2

請參閱下面的Python代碼:
如何在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信號嗎?

+1

大多數信號不會排隊多個實例 - 它們只是等待或不在。如果您需要排列多個事件的實例,則需要更一般的事件或消息傳遞框架。 – twalberg

+0

twalberg,謝謝! –

回答

2

在Python中通過Signal模塊不排隊一個類型信號的多個實例。當您的應用程序處於睡眠狀態時,您將收到所有發送的信號,但此後您只能檢測到最新的信號。

+0

最大,謝謝!現在很清楚。 –