Добрый день. Подскажите, пожалуйста, кто знает, можно ли во время выполнения процессов multiprocessing.pool.ThreadPool заблокировать все для выполнения одной функции? Т.е. процессы работают, а как приходит время - запускается функция, скажем, проверки используемого в pool списка, и все процессы ждут, когда эта функция завершиться, чтобы подхватить измененный список и продолжить многопроцессорное выполнение основной функции?
в таком виде потоки продолжают работать
Python:
from multiprocessing.pool import ThreadPool
from loguru import logger
with ThreadPool(num) as pool:
result = pool.imap_unordered(
run_smtp_send,
mail_list
)
start = time.perf_counter()
for _ in result:
try:
td = time.perf_counter() - start
if td >= float(recheck_timeout):
# все должны ждать результата выполнения этой функции
answer = check_smtp()
if answer:
start = time.perf_counter()
else:
print('[-] TODO') #
except Exception as ex:
logger.opt(exception=True).info(ex)
в таком виде потоки продолжают работать
Последнее редактирование: