【发布时间】:2015-03-19 16:35:39
【问题描述】:
我正在尝试制作一个很像 shell 的 Python 程序:主要等待用户输入,偶尔显示来自另一个线程的消息。
考虑到这一点,我制作了以下示例代码:
import threading
import time
def printSomething(something="hi"):
while True:
print(something)
time.sleep(2)
def takeAndPrint():
while True:
usr = input("Enter anything: ")
print(usr)
thread1 = threading.Thread(printSomething())
thread2 = threading.Thread(takeAndPrint())
thread1.start()
thread2.start()
我预期会发生什么
提示用户输入;有时这会导致他们的消息被输出,其他时候printSomething 消息首先打印。
Enter anything:
hi
Enter anything: hello
hello
Enter anything:
hi
实际发生了什么
似乎只有printSomething 运行:
hi
hi
hi
我需要怎么做才能持续提示用户输入,同时根据需要打印来自其他线程的消息?
【问题讨论】:
标签: python multithreading python-3.x python-multiprocessing