python Input()在线程中跳过,不用线程没问题

希望每次输入往队列放一个东西
import queue
import threading

queue = queue.Queue(maxsize=5)

def t():
    while True:
        i = input()
        print('a',i, queue.qsize())
        queue.put(i, block=True)
threading.Thread(target=t).start()

运行结果及报错内容 ,输入两次后直接跳过input,用空字符串把队列填满了

? 5
a 5 0
? 5
a 5 1
a 2
a 3
a 4
a 5

不用线程不会跳过input,而且调试的时候也不会跳过
希望这个线程提供input接口,向队列放东西

我的理解是,input本身就是需要在单线程里面执行的东西,它本身就需要线程安全的。所以你直接弄一个线程去input,就会导致input不安全,你能输入两次都算幸运的,我猜的没错的话,有时候你只能输入一次