У меня есть некоторый код, который использует параллельные фьючерсы для подключения к множеству удаленных хостов для запуска некоторых команд.
Например:
def set_host_to(host, value):
connection = connect_to(host)
info = do_something_with(connection)
do_some_action(connection, value)
with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
for host, value in things_to_do:
executor.submit(set_host_to, host, value)
Теперь у меня есть требование, чтобы некоторые из этих фьючерсов не работают в одно и то же время, но какие из них не могут быть обнаружены, пока они не получат info
выше.
Является ли правильное решение своего рода мьютексами здесь? Скажем, info
(или его часть) была строкой, и 2 фьючерса с одной и той же строкой не должны запускаться одновременно. Как бы я go о кодировании этого?