想在windows下实现这样一个小程序:
屏幕上每隔一秒钟打印一行字"hello, world!",而与此同时,当键盘有输入的时候,输入内容也会在屏幕上打印出来。相当于以下两段代码同时执行:
import time while 1: time.sleep(1) print("hello, world!")
while 1: info = input("input somthing:") print(info)
因为是初学,所以对线程不是很熟,做了一个简单的尝试,把两段程序放到两个线程里执行,代码如下:
import time import threading def a(): while 1: print("hello, world!") time.sleep(1) def b(): while 1: info = raw_input("input somthing:") print(info) t1 = threading.Thread(target = a) t2 = threading.Thread(target = b) t1.start() t2.start()
但在windows下,以上代码并不成功:似乎每次程序等待输入时,两个线程都会被阻塞,直到从键盘输入信息后。这和我想要的结果(t1不受t2干扰)并不一样。请问正确的写法是怎样的?求代码!
完全没问题,hello world一直在输出
你好,不知道你用的是什么工具?
我在linux下试过可以,但是在windows下就不行,我用IDLE
@flauto: 没用工具,直接运行python.exe foo.py