我是Python中多线程处理的新手,但是一直使用以下代码来运行多线程下载,但在运行了几个小时后,它会随着时间的推移而耗尽我的内存,然后由于缺少可用内存而停止。我试图找出一种替代方法,允许我运行这个过程几个小时,而不必担心内存消耗:
def worker()
while True:
item = jq.get()
download_stuff(item)
jq.task_done()
input_list = [1,2,3,4,5,6,7,8,9...]
num_threads = 8
q = Queue
jq = JoinableQueue()
for i in range(num_threads):
t = Thread(target=worker)
t.daemon = True
t.start()
for item in input_list:
jq.put(item)
jq.join()