ThreadPoolfrom multiprocessing.dummy import Pool as ThreadPool
def get_img(_id):
response = session.get(URL+'/images/'+_id+'.json')
# здесь получение словаря в котором имеется картинка в формате base64.
# Далее код по обработке img и отправке на сервер Flask
# Запрос на получение списка путей файлов
response = session.get(URL, verify=False, timeout=5)
if response.status_code == 200:
arr_obj = json.loads(response.text)
if arr_obj:
tasks = [_id for _id in arr_obj]
pool = ThreadPool()
pool.imap(get_img, tasks)
Poolfrom multiprocessing.pool import Pool
def get_img(_id):
response = session.get(URL+'/images/'+_id+'.json')
# здесь получение словаря в котором имеется картинка в формате base64.
# Далее код по обработке img и отправке на сервер Flask
# Запрос на получение списка путей файлов
response = session.get(URL, verify=False, timeout=5)
if response.status_code == 200:
arr_obj = json.loads(response.text)
if arr_obj:
tasks = [_id for _id in arr_obj]
with Pool() as pool:
result_pool = pool.map(get_img, tasks)
ThreadPool как я понимаю использует один процессор,или ошибаюсь? Данный вариант мне не совсем подходит, т.к. надо получать и обрабатывать много картинок, в принципе из-за этого решил использовать imap вместо map, чтобы не дожидаться завершения всех потоков.
Pool запускает все процессы, но всё происходит так долго......по ощущениям что в десятки раз уступает по скорости с ThreadPool .
Вообщем вопрос следующий:
- Что мне поправить чтобы использовать по максимуму процессов и потоков? Ну или как я могу обрабатывать большой объем картинок используя макс. возможности ПК?
PS: Flask выдает результат от обученной модели tf. и на скорость практически не влияет.