concurrent.futures: определить, какие будущие доходы

В последнее время я имею дело с concurrent.futures, я представил несколько функций в одном исполнителе, я хотел бы знать, какое будущее вернется первым.

with concurrent.futures.ThreadPoolExecutor(max_workers=workers) as executor:
        future_action = executor.submit(func_action, data)
        future_monitor = executor.submit(func_monitor)

Теперь это основная часть, я хотел бы знать, что, когда future_monitor заканчивается, я бы завершил все другие действия будущего.

Я нашел в документации следующее ( https://docs.python.org/dev/library/concurrent.futures.html):

concurrent.futures.wait(fs, timeout=None, return_when=ALL_COMPLETED)

, так что я могу подождать return_when=FIRST_COMPLETED, но как я могу убедиться, что это действительно будущее монитора.

TNX заранее!

1 ответ

Согласно документации, метод wait возвращает два набора: done, not_done фьючерсы.

Проверьте, находится ли будущее, которое вы хотите проверить, в done задавать.

fs = future_action, future_monitor
done, not_done = concurrent.futures.wait(fs, timeout=None, return_when=FIRST_COMPLETED)
if future_monitor in done:
    # Do something
Другие вопросы по тегам