我有一个与线程控制台应用程序的问题。在第一个线程中,我有一个函数,它将符号“x”写入输出。在第二个线程中,我有一个函数,它等待用户输入。(符号“x”只是这个问题的随机选择)。你知道吗
例如
线程1:
while True: print "x" time.sleep(1)
螺纹2:
input = null while input != "EXIT": input = raw_input() print input
但是当我将线程2的文本写入控制台时,我的输入文本(例如,HELLO)被重写。你知道吗
x x HELx LOx x x[enter pressed here] HELLO x x
有什么方法可以防止我的输入文本被符号“x”重写吗?你知道吗
谢谢你的回答。你知道吗
在控制台中,标准输出(由正在运行的程序生成)和标准输入(由您的按键生成)都被发送到屏幕上,因此它们最终可能都是混合的。你知道吗
在这里,线程1每秒逐行写入1
x
,因此,如果您花了1秒以上的时间键入HELLO
,那么将生成您提交的控制台内输出。你知道吗如果您想避免这种情况,请给出一些非详尽的建议:
检测到按键时临时中断thread1输出
使用诸如ncurses之类的库为程序输出和用户输入创建单独的区域
只需抑制thread1输入,或者将其发送到文件。
相关问题 更多 >
编程相关推荐