У меня есть несколько потоков, которые запускают цикл while. Я хотел бы прекратить эти потоки через определенное количество времени. Мне известны другие вопросы, подобные этому, но я не вижу, как я могу передать эти ответы на мой код.Как прекратить поток в python через определенное количество времени?
def function1(arg1, arg2, arg3, duration):
t_end = time.time() + duration
while time.time() < t_end:
#do some stuff
for i in range(100):
t = Thread(target = function1, args=(arg1, arg2, arg3, 10))
t.start()
Это открывает 100 нитей, но они никогда не закрываются. Как закрыть эти потоки после указанного времени, в этом примере 10 секунд? Моя функция открывает сокет.
Ваш пример имеет неопределенную переменную: 'TIME'. Пожалуйста, предоставьте краткую полную программу, которую мы можем запустить. Скажите, каков ожидаемый и фактический результат вашей программы. См. [Mcve] и [ask] для получения дополнительной информации. –
Извините, что неопределенная переменная TIME должна была быть длительностью, вопрос был отредактирован. Вам все еще нужна короткая полная программа? @Rob –
Да, MCVE все равно будет полезен. Он продемонстрировал бы, например, какую «тему» вы используете, и именно то, что вы подразумеваете под «никогда не закрывать». –