python - 切换使用的进程数是否有效
问题描述
我对线程编程相当陌生。我写了一个小脚本来并行下载照片。如果我遍历一个对象列表,每个对象的照片数量从 0 到 20+ 不等,在线程池中拥有静态数量的线程或根据图像数量变化是否更有效?一些初步测试表明,静态数量是有意义的,对数据进行了一些统计,几何平均值约为 15.5 张图像,平均值为 23 张。
def processObj(obj):
# this is function called per object
from multiprocessing import Pool, cpu_count
from functools import partial
# .... processing object that may have multiple photos
# numPhotos is the num of photos to download
if len(allPhotos) < 10:
numProcess = 6
else:
numProcess = 12
getLogger('info').info('\t Extracting Photos')
pool = Pool(numProcess)
# processPhoto downloads photo
download_func = partial(processPhoto, folderName = folderName)
# photoList is a list of urls to photos
results = pool.map(download_func, photoList)
pool.close()
pool.join()
解决方案
推荐阅读
- flutter - 如何从 Dart 中的期货列表中异步流式传输加载的对象
- javascript - 如果一个数字大于其他数字,如何制作一个函数
- c++ - 存储用于蒙特卡罗模拟的 random_device 种子
- azure - Azure 媒体服务:为资产文件提供自定义文件名
- google-cloud-functions - 使用 Google Cloud Functions ssh[keys] 进入 VM
- java - 用户输入时不要从 TextInputLayout 获取值
- spring-boot - 带有自由执行器配置的 Springboot 可调用异步操作
- xslt - 如何使用 XSLT 在数字末尾添加 .01?
- python - 如何在 discord.py 中创建自定义骑行状态?
- vba - 如何接受选择中的所有更改?