Задать вопрос
@Sanchoys228

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

В интерфейсе есть кнопка СТОП, нужно чтобы после ее нажатия завершились все демонические потоки
  • Вопрос задан
  • 61 просмотр
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 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()


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

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

Похожие вопросы