python3 多进程 multiprocess 任务均衡 task-balance 队列 queue V1

本文介绍了在Python3中使用多进程multiprocess时遇到的队列Empty异常问题,以及如何通过设置进程控制信息来避免这个问题。提供了一个完整的示例代码,展示了如何创建队列、启动进程并实现任务均衡,同时处理可能的空队列异常,确保程序能够正常结束。

python3多进程偶尔会有无法停下的bug,因为多进程竞争读取队列时会有Empty exception

所以最好的办法是人为设置进程控制信息,避免因为竞争导致读取队列为空的问题。

[Python,SQL,ETL]交流群 164142295

以下代码完美处理了这个问题

 

 


import time
from multiprocessing import  cpu_count, Queue, Process
from queue import Empty
import traceback


def add(q, index, Q,waste):
    r,b = 0,0
    while 1:
        try:
            args = q.get(block=False)
            if args[0] == 1:
                Q.put(r)
                break
            else:
                r += 1
        except Empty:
            b+=1
            time.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值