Я написал такой код:
from enum import Enum
import time
import threading
class State(Enum):
WAITING = 1
WORKING = 2
def thread(my_func):
def wrapper(*args, **kwargs):
my_thread = threading.Thread(target=my_func, args=args, kwargs=kwargs)
my_thread.start()
return wrapper
@thread
def timeri():
state = State.WORKING
time.sleep(5)
print('Закончил работать')
print(state)
state = State.WAITING
def main():
state = State.WAITING
while True:
print(state)
sms = input()
if state == State.WAITING:
print('Привет дружочек пирожочек')
timeri()
elif state == State.WORKING:
print('Я занят')
if __name__ == '__main__':
main()
Код, запускается, пишем сообщение, нас один раз приветствует, а после запускается таймер, которые работает 5 секунд и по идее, эти 5 секунд, он должен писать "я занят" (Нужна именно много поточность, чтобы можно было писать и в момент его работы)
Но в результате он всегда пишет нам привет, почему так происходит?
`State.WAITING
Привет
Привет дружочек пирожочек
State.WAITING
Привет
Привет дружочек пирожочек
State.WAITING
Закончил работать
State.WORKING
Привет
Привет дружочек пирожочек
State.WAITING