当前位置:主页 > 查看内容

Python ThreadPoolExecutor 限制_work_queue 大小

发布时间:2021-08-20 00:00| 位朋友查看

简介:使用python的 futures.ThreadPoolExecutor 是,如果调用submit提交任务 ThreadPoolExecutor的会向执行 self._work_queue.put(w) 其中 self._work_queue = queue.SimpleQueue() SimpleQueue 是不限制队列大小的,如果提交的任务太多,处理不及时,则导致占用……

使用python的futures.ThreadPoolExecutor是,如果调用submit提交任务
ThreadPoolExecutor的会向执行

self._work_queue.put(w)

其中

self._work_queue = queue.SimpleQueue()

SimpleQueue 是不限制队列大小的,如果提交的任务太多,处理不及时,则导致占用太多内存

可以替换到_work_queue的实现,使用queue.Queue(maxsize=maxsize)

class ThreadPoolExecutorWithQueueSizeLimit(futures.ThreadPoolExecutor):
    def __init__(self, maxsize=50, *args, **kwargs):
        super(ThreadPoolExecutorWithQueueSizeLimit, self).__init__(*args, **kwargs)
        self._work_queue = queue.Queue(maxsize=maxsize)

links:


本文转自网络,版权归原作者所有,原文链接:https://segmentfault.com/a/1190000040550148
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐