Python Threadpoolexcutor 内存占用问题
-
当数据量达到几百万的时候,内存占用率大
-
Threadpoolexcutor默认是无界队列,消费任务的速度如果低于生产任务,生产任务则无限添加到无界队列中。导致内存被占满。
解决办法:
import queue
from concurrent.futures import ThreadPoolExecutor
class ThreadPoolExecutor(ThreadPoolExecutor):
"""
修改线程池修改队列数
"""
def __init__(self, max_workers=None, thread_name_prefix=''):
'''
重写队列数
'''
super().__init__(max_workers, thread_name_prefix)
self._work_queue = queue.Queue(self._max_workers * 2)