Есть простенький скрипт который в бесконечном цикле в несколько потоков скачивает некоторые файлы.
Он принимает время за которое он должен скачать что успеет и завершиться.
Я завершаю приложение обычно простым exit() или sys.exit(), но в данном случае после выполнения этих функций скрипт продолжает 'жить' за счёт потоков.
Как бы так завершить все потоки разом ?
{Смотрел в гуглах разных и там говорится делать переменную обозначающую работать функции или нет, но ждать пока завершиться цикл и пойдёт проверка в while, ждать не хочется}
Видимо плохо объяснил:
from threading import Thread
from time import sleep
global work
work = True
def thread(my_func):
def wrapper(*args, **kwargs):
my_thread = Thread(target=my_func, args=args, kwargs=kwargs)
my_thread.start()
return wrapper
@thread
def work():
while work:#Суть в том что пока сон не закончится проверка не будет выполнена, а иногда времени нет на то что бы ожидать пока всё это завершится
sleep(10)# имитация бурной деятельности
def main():
for i in range(0, 5):
work()
sleep(15)
global work
work = False
if __name__ == '__main__':
main()