вставить в потоки блокирующую функцию

robisho

Активный пользователь
Пользователь
Окт 19, 2020
151
26
28
Добрый день.
Python:
sem = threading.Semaphore(S_THREADS)
thr_lst = []
for ind, mail_to in enumerate(mail_list):
    if ind > 0 and ind % int(S_COUNTER_OF_SENT_EMAILS) == 0:
        send_for_my_email()
        print(f'Pause time = {S_PAUSE_TIME} sec')
        time.sleep(S_PAUSE_TIME)
    thr = threading.Thread(
        target=run_smtp_send_with_semaphore,
        args=(mail_to, sem),
        daemon=True
    )
    thr_lst.append(thr)
    thr.start()
[i_thr.join() for i_thr in thr_lst]

Подскажите, пожалуйста, можно ли остановить все потоки во время выполнения функции send_for_my_email()? В смысле после выполнения условий в if заблокировать выполнение потоков, пока send_for_my_email() не отработает и не пройдет time.sleep()? Спасибо.
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
может я что то не понял, но код же выполняется последовательно, если заходит в иф, то пока там все процедуры не завершатся, дальше не пойдет, то есть потоки не запустятся
ну и еще вот это есть - https://docs.python.org/3/library/threading.html#event-objects
 
  • Мне нравится
Реакции: robisho

Форум IT Специалистов