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