首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >偷窥multiprocessing.queue?

偷窥multiprocessing.queue?
EN

Stack Overflow用户
提问于 2017-03-29 08:47:20
回答 1查看 2K关注 0票数 9

我有多个工作进程从同一个multiprocessing.queue()读取。每个工作进程只读取属于自己的内容,必须保留其他内容不受影响。因此,基本上,工作进程必须首先检查队列内容,然后决定是否弹出一个项。

有什么方法可以用multiprocessing.queue来完成吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-29 08:55:48

您总是可以将不需要的消息放回(如果订单不是问题,)

代码语言:javascript
复制
def get_my_job():

    while True:
        job = q.get()
        if job == 'mine':
            return job
        q.put(job)
        time.sleep(random()/2) #preventing deadlocks...

如果顺序很重要,您可以使用多个队列,以便每个消息类型的都在自己的队列中。

代码语言:javascript
复制
queues = { 'queue4worker_type1': Queue(),
           'queue4worker_type2': Queue(),
          }
#each worker can now consume only messages for its wanted types ... 
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43088633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档