我正在尝试使用队列将数据发送到多处理进程。出于某种原因,该示例不起作用。你知道为什么吗?
我希望程序打印出“收到的东西:你好”和“收到毒丸”,但它永远不会到达那里。但是,它确实打印“正在运行”和“正在侦听”,因此我知道它肯定会尝试从队列中读取内容。
我正在使用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)