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()
? 5
a 5 0
? 5
a 5 1
a 2
a 3
a 4
a 5
我的理解是,input本身就是需要在单线程里面执行的东西,它本身就需要线程安全的。所以你直接弄一个线程去input,就会导致input不安全,你能输入两次都算幸运的,我猜的没错的话,有时候你只能输入一次