начал изучать питон, разбираюсь с многопоточностью.
Столкнулся с такой проблемой:
нужно запустить 2 метода:
один из них постоянно выводит сообщение в консоль
второй читает значение из консоли.
сделал так:
import threading from time import sleep class WorkerWriter(threading.Thread): def __init__(self): print("worker writer created") threading.Thread.__init__(self) self.daemon = True def write_message(self): print("write message started") while True: print("some message") sleep(3) class WorkerReader(threading.Thread): def __init__(self): print("worker reader created") threading.Thread.__init__(self) self.daemon = True def read_console(self): print("read console started") while True: command = input() if command == "exit": break print("your input: {0}".format(command)) if __name__ == "__main__": print("start") writer = WorkerWriter() writer._target = writer.write_message() writer.start() # or join print("started") # до этого метода выполнение не доходит
получается что до метода
print(“started”)
выполнение не доходит, упирается в бесконечный цикл. почему ?
ведь после запуска потока выполнение главного потока должно продолжится, а бесконечный метод должен крутиться в отдельном потоке.