Я написал такой код:
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