Я выполняю следующий фрагмент кода в блокноте Jupyter, но продолжаю получать сообщение об ошибке «EOFError: EOF при чтении строки», когда я вводю что-либо кроме «q» для функции terminate ().
from threading import Thread, Lock
import time
class CountdownTask:
def __init__(self):
self.print_lock = Lock()
self._running = True
def terminate(self):
q = ''
while q != 'q':
q = input('quit? ')
self._running = False
def run(self, n):
while self._running and n > 0:
print('T-minus', n)
n -= 1
time.sleep(1)
c = CountdownTask()
t = Thread(target = c.run, args =(10, ))
close = Thread(target = c.terminate)
t.daemon = True
t.start()
close.start()
Этот аналогичный код вне класса работает в ноутбуке, но мне нужно представить его для разрабатываемого класса.
import threading
import time
def run_thread():
while True:
print('thread running')
time.sleep(2)
global stop_threads
if stop_threads:
break
stop_threads = False
t1 = threading.Thread(target=run_thread)
t1.start()
time.sleep(0.5)
q = ''
while q != 'q':
q = input()
stop_threads = True
t1.join()
print('finish')
Я не понимаю Ошибка запуска кода в командной строке, но мне нужно разработать его в Jupyter. Кто-нибудь знает, как заставить его работать?