остановить или уничтожить поток в python

#python #django #multithreading

#python #django #многопоточность

Вопрос:

Я создаю функцию, которая создает потоки.

если я вспомню, что функция, выполняющая потоки, должна быть прекращена.

и должны быть созданы новые потоки.

 def callme():
    t1 = thread(target=somefunction, args=(,))
    t2 = thread(target=somefunction, args=(,))
    t1.start()
    t2.start()
    t1.join()
    t2.join()

def somefunction():
    for i in range(10000000):
        print(i)

callme() #callme1
sleep(2)
callme() #callme2
  

если я вызываю callme1, то через 2 секунды должно быть создано более 2 потоков
, после чего я вызываю callme2, потоки callme1 должны быть уничтожены или остановлены.

и выполняется 2 потока callme2

Я использую какую-то такую технику в Django, если я извлекаю URL, а не некоторые вызовы функций просмотра, которые содержат эти типы структур потоков.

Комментарии:

1. Как есть, callme вернется только после остановки обоих потоков. Я не уверен, что вы на самом деле пытаетесь здесь сделать. Можете ли вы показать нам реальный пример из вашего кода Django?

2. если кто-то нажмет кнопку из пользовательского интерфейса, он создаст большой файл с помощью thread. для создания этого файла я использую 1 представление. функция просмотра управляет всеми потоками и подобными структурами callme(). если пользователь нажимает несколько раз, функция просмотра также вызывается несколько раз, точно так же, как callme () callme() callme() callme() . я хочу завершить поток, если функция просмотра вызывает.

3. Правильно — это все равно не будет работать в многопроцессорной серверной среде. Если вам нужна надежная система фоновой работы, вам нужно будет изучить, например, rq или celery.