import multiprocessing
from gevent import monkey
monkey.patch_all()
from gevent.pool import Pool
def main()
mid = len(datas) // 2 # data 要执行的数据列表 mid取列表的中间值
jobs = []
for x in range(2): # 开两个核
p = multiprocessing.Process(target=image_downloader, args=(datas[x * mid:(x + 1) * mid], x)) #x 两个核 每个核中取一半的数据加入到进程中
p.start()
jobs.append(p)
for job in jobs:
job.join()
def image_downloader(img_urls, num):
pool = Pool(5)
def handle():
pass #要执行的函数
pool.map(handle, img_urls)
main()
python 协程池配合多进程、开多核、使用
最新推荐文章于 2023-04-30 17:53:08 发布
本文介绍了如何使用Python的multiprocessing和gevent库实现数据分块下载,通过Process和Pool进行并行处理,提高效率。主要展示了如何通过Monkey Patch和Pool.map来加速image_downloader函数的工作。
摘要由CSDN通过智能技术生成