Python 多处理和队列

科里·哈恩

我有一个代码片段取自另一个 stackoverflow 帖子Python Workers and Queues

from multiprocessing import Process
from Queue import Queue

class Worker(Process):
    def __init__(self, queue):
        super(Worker, self).__init__()
        self.queue= queue

    def run(self):
        print 'Worker started'
        # do some initialization here

        print 'Computing things!'
        for data in iter( self.queue.get, None ):
            print(data)

if __name__ == '__main__':       
    request_queue = Queue()
    for i in range(4):
        Worker( request_queue ).start()
    for data in range(100):
        request_queue.put( data )
    # Sentinel objects to allow clean shutdown: 1 per worker.
    for i in range(4):
        request_queue.put( None ) 

为什么这个进程挂起而不处理队列内容?

科里·哈恩

发现我的错误。我不知道有两个队列。

改变

 from multiprocessing import Process
 from Queue import Queue

 from multiprocessing import Process,Queue

现在我有了预期的行为

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章