在python多处理中,可以创建一个由30个进程组成的多处理池,以便在某些ID上处理一些长时间运行的等式。下面的代码在一台8核机器上产生30个进程,load_average从未超过2.0。事实上,30个使用者是一个限制,因为承载it的postgresql数据库的服务器有32个核,所以我知道如果我的数据库能够处理它,我可以产生更多的进程。
from multiprocessing import Pool
number_of_consumers = 30
pool = Pool(number_of_consumers)
我花了时间来安装芹菜,但无法重新创建这30个过程。我以为设置并发性,例如-c
我做了一个函数,给出一个带有不同图片的链接的列表,他们下载这些图片。为了加快这个过程,我使用了线程。这是我写的: with ThreadPoolExecutor() as executor:
executor.map(self .__descargar_imagen__, self.links_paginas) 在这里,__descargar_imagen__是一个下载图像的函数,links_paginas是包含所有链接的列表。问题是,由于某些原因,使用该代码时,程序不会等待所有线程完成,因此它只下载部分图像。有没有办法让程序等待,直到所有的线程都被concurrent.future