Есть папка с n картинок и сервак двухпроцессорный, пытаюсь распаралелить выполнение функции по обработке изображений на 2 процесса. Использую модуль multiprocessing. Что делаю: создаю список изображений , объявляю процесс через Pool(), объявляю цикл зависящий от длины списка изображений. Код сейчас так выглядит:
img_list = [] #Список изображений
jobs_list = []#Список процессов
for _,_,file_names in os.walk(f_img):#
for i in file_names:
img_list.append(os.path.join(f_img, i))
print("CUrrent img list: ", img_list)#Заполнил список изображениями из папки
curent_img_list = deque(img_list)#Для дальнейшего использования ф-ии popleft()
proc = Pool()
while len(curent_img_list): #Пока не закончатся картинки
print("--------->>>> First While")
for i in range(2):#"Это я так ограничиваю кол-во процессов
job = proc.map(run, curent_img_list[0])#Запускаю процесс передав изображение в run
curent_img_list.popleft()#Удаляю img из списка
jobs_list.append(job)#Добавляю процесс в список запущенных процессов
print("______>>>>>Iteration: ", i)
while len(jobs_list):#Пока есть запущенные процессы отслеживаем их статус
print("--------->>>> Second While")
for j in jobs_list:
j.join(timeout=0)
if j.is_alive():
pass
else:
j.close()
del(jobs_list[])# Тут надо удалить процесс из списка но до этого пока не доходит стек
В процессе выполнения появляется ошибка
job.join()
AttributeError: 'list' object has no attribute 'join'
Распринтил jobs_list, а там список из None.
Нужна помощь, я что то в затыке(