@Whey

Как в многопоточности добавить задержку скрипта?

Есть скрипт, который выполняется в потоке. Необходимо, чтобы после выполнения всех активных потоков - скрипт выключался на N-ое количество секунд, и затем вызывал функцию для повторного запуска, т.е. создать рекурсию. Пробовал такое провернуть после цикла for, но функция time.sleep вызывается еще во время работы потока. Как можно вызвать функцию после завершения всех активных потоков?
import time
from threading import Thread


class MyThread(Thread):
    def __init__(self, name):
        Thread.__init__(self)
        self.name = name

    def run(self):
        msg = "%s is running" % self.name
        print(msg)


def create_threads():
    for i in range(5):
        name = "Thread #%s" % (i + 1)
        my_thread = MyThread(name)
        my_thread.start()

time.sleep(5)
create_threads()

if __name__ == "__main__":
    create_threads()
  • Вопрос задан
  • 125 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Подождать их завершения вызовом метода join каждого из потоков или воспользоваться каким-либо из примитивов синхронизации для той же цели.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы