2
我正在嘗試使用隊列將數據發送到多處理進程。出於某種原因,該示例不起作用。你知道爲什麼嗎?爲什麼進程沒有收到隊列事件?
我希望程序打印出「收到的東西:你好」和「收到毒丸」,但它永遠不會到達那裏。但是,它確實打印出「正在運行」和「正在收聽」,所以我知道它肯定會嘗試從隊列中讀取某些內容。
我使用Pythong 3.4
from multiprocessing import Process
import queue
import time
class EventAggregatorProcess(Process):
def __init__(self):
super(EventAggregatorProcess, self).__init__()
self.event_queue = queue.Queue()
def run(self):
print('running')
is_stopped=False
while not is_stopped:
print('listening')
msg = self.event_queue.get()
if msg:
print('Received something: %s'%msg)
else:
print('Received poison pill')
is_stopped=True
if __name__=='__main__':
eap = EventAggregatorProcess()
eap.start()
time.sleep(1)
eap.event_queue.put('hello')
eap.event_queue.put(None)