@Sanchoys228

Как по нажатию кнопки остановить все демон потоки?

В интерфейсе есть кнопка СТОП, нужно чтобы после ее нажатия завершились все демонические потоки
  • Вопрос задан
  • 47 просмотров
Пригласить эксперта
Ответы на вопрос 2
LaRN
@LaRN
Senior Developer
Можно использовать библиотеку threading, там есть такая сущность как event. С помощью event можно послать сигнал всем потокам, а потоки получив этот сигнал могут или приостановиться или самоуничтожиться.

Пример использования есть тут:
https://www.bogotobogo.com/python/Multithread/pyth...
Ответ написан
Ternick
@Ternick
1) Проще всего такое провернуть используя библиотеку multiprocessing.
2) Как-то так:
code

import multiprocessing 
import time 

def func(number): 
	for i in range(1, 10): 
		time.sleep(0.01) 
		print('Processing ' + str(number) + ': prints ' + str(number*i)) 

# list of all processes, so that they can be killed afterwards 
all_processes = [] 

for i in range(0, 3): 
	process = multiprocessing.Process(target=func, args=(i,)) 
	process.start() 
	all_processes.append(process) 

# kill all processes after 0.03s 
time.sleep(0.03) 
for process in all_processes: 
	process.terminate()


Если ответ устраивает, отметьте ответ решением :)
Удачи :)
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
от 150 000 до 200 000 ₽
OnederX Москва
от 100 000 до 120 000 ₽
Кенарий Санкт-Петербург
от 120 000 до 250 000 ₽
29 сент. 2020, в 01:42
5000 руб./за проект
28 сент. 2020, в 22:46
1500 руб./за проект
28 сент. 2020, в 22:42
5000 руб./за проект