Есть код.
import os, os.path, time import _thread as thread list_path = [] #итоговый список всех абсолютных адресов до архивов. exitmutix = [False] * 2 #нужен будет чтоб подождать завершения дочерних потоков. def Worms(adress) : for path_name, list_dir, list_file in os.walk(adress): for to_file in list_file: full_path = os.path.join(path_name, to_file) if full_path.endswith('.rar') or full_path.endswith('.zip') or full_path.endswith('.7z'): #отфильтровывает все, кроме абсолютных адресов до архивов. if full_path in list_path: pass else: if os.stat(full_path).st_size <= 1200000 and int(time.ctime(os.stat(full_path).st_mtime)[-4:]) == 2018: # еще фильтр. отсеивает фаилы больше 1,2 Мб и старше 2018 гг. list_path.append(full_path) # итоговый список всех абсолютных адресов до архивов. #Вариант_1 Worms(r'\\192.168.0.60\общая 53\clowd\Документы клиентов\Организации') Worms(r'\\192.168.0.60\общая 53\fcc') #Вариант_2_потоки thread.start_new_thread(Worms, (r'\\192.168.0.60\общая 53\clowd\Документы клиентов\Организации', 0)) thread.start_new_thread(Worms, (r'\\192.168.0.60\общая 53\fcc', 1)) print("Start thread") while False in exitmutix: pass print('END')
Вопрос вот в чём.
Подскажите пожалуйста почему вариант с потоками работает медленнее ? (или это только у меня медленнее )
Как я думал
Ведь в первом варианте два дерева по очереди обрабатывает , а во втором одновременно, и как я думал должно было быть быстрее пройти все каталоги. А получилось что нет.
Вариант 1 занимает ~ 5 мин, Вариант 2 ~ 9 мин.