thr_lst = [] sem = threading.Semaphore(num) with sem: for ind, mail_to in enumerate(mail_list): if ind != 0 and ind % COUNT == 0: send_for_my_email() thr = threading.Thread( target=run_send, args=(mail_to,), daemon=True ) thr_lst.append(thr) thr.start() [i_thr.join() for i_thr in thr_lst]
при запуске скрипта smtp серверы считываются из файла smtp_file и образуется список smtp_list. из этого списка в функцию run_send() подаются сервера по одному. функция send_for_my_email() делает рассылку на выбранный емейл со всех элементов списка smtp при возникновении условия. если попадается нерабочий smtp - из исходного файла smtp_file он удаляется. можно ли сделать так, чтобы после завершения работы send_for_my_email() и перезаписи smtp_file обновить используемый smtp_list, чтобы следующие итерации цикла в потоках использовали только рабочие серверы из обновленного smtp_list? Спасибо.