Идея, которую я пытаюсь запустить, такова:
RUN 3 Процессы, выполняющие вычисления
После того, как один из 3 процессов завершает задачу
Немедленно убивайте других и продолжайте выполнять основную задачу, я не могу позволить ей дольше выполняться
Я попробовал следующее:
Помещение глобальной переменной через multiprocessing.manager, но это все же позволяет процессам завершать свои циклы.
Возникновение исключения
ОС: Windows
ПИТОН: 2,7
def f(name):
Doing = True
try:
while Doing:
print 'DOING',name
somecodethatmarksDoingAsFalse()
except Exception as error:
print 'bye'
print error
Doing = False
return True
if __name__ == '__main__':
p = multiprocessing.Process(target=f, args=('bob',))
p2 = multiprocessing.Process(target=f, args=('tom',))
p.start()
p2.start()
p.join()
p2.join()
raise Exception('I know Python!')
sys.exit()
Я ожидаю, что смогу убить все процессы, когда я отмечу выполнение как ложное, вызвать исключение или любым другим способом, когда вычисление выполняется на ОДНОМ из процессов
РЕДАКТИРОВАТЬ : Это не дубликат, потому что он все еще завершает выполнение кода, например, модуль запросов по-прежнему отправляет данные