Я довольно новичок в многопоточном программировании. Я написал небольшой скрипт для загрузки фотографий параллельно. Если я просматриваю список объектов с количеством фотографий от 0 до 20+ и более oop, то эффективнее ли иметь общее количество потоков в пуле потоков или варьироваться в зависимости от количества изображений? Некоторые первоначальные тесты предполагают, что имеет смысл иметь количество c, имеет некоторые статистические данные по данным, геометрия c означает около 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()