Я хочу прекратить некоторые потоки через определенное время. Эти потоки будут запускать бесконечный цикл while, и за это время они могут останавливаться на случайное, большое количество времени. Поток не может длиться дольше, чем время, заданное переменной продолжительности. Как я могу сделать это после длины, заданной длительностью, потоки прекращаются.
def main():
t1 = threading.Thread(target=thread1, args=1)
t2 = threading.Thread(target=thread2, args=2)
time.sleep(duration)
#the threads must be terminated after this sleep