Python Daemon Threading: как мне активировать флаг из моего потока для выхода из основного потока?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python Daemon Threading: как мне активировать флаг из моего потока для выхода из основного потока?

Сообщение Anonymous »

Я использую Python Threading, где для атрибута Daemon установлено значение true. Я хочу активировать флаг в своем потоке, и если этот поток сработает, я хочу выйти из программы. В моем основном цикле я получаю входные данные

Код: Выделить всё

import threading
import time
import sys

class Test:
def __init__(self):
self.done = False
self.inp = ''

def worker(self):
count = 0
while True:
if self.inp == 'start':
print(f"Hello from Worker {count}")
count += 1
time.sleep(1)
if count == 3:
self.done = True
return

def start(self):
while not self.done:
self.inp = input('Enter input: ')
print(self.done)
time.sleep(1)

print("Main Thread ending")
sys.exit()

test = Test()
# Create a thread
thread = threading.Thread(target=test.worker)
# Set the thread as a daemon thread
thread.daemon = True
# Start the thread
thread.start()
test.start()

# Main thread sleeps for 5 seconds
time.sleep(5)

Основной поток не завершается, когда я получаю ввод с клавиатуры. Если я удалю этот фрагмент кода, он будет корректно существовать.

Подробнее здесь: https://stackoverflow.com/questions/784 ... xit-the-ma
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»