首页 新闻 会员 周边

python中怎样实现同时输入&输出

0
悬赏园豆:50 [已解决问题] 解决于 2012-08-17 07:36

 想在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干扰)并不一样。请问正确的写法是怎样的?求代码!

flauto的主页 flauto | 初学一级 | 园豆:157
提问于:2012-08-09 21:02
< >
分享
最佳答案
0

完全没问题,hello world一直在输出

收获园豆:50
Greatest | 小虾三级 |园豆:678 | 2012-08-10 12:00

你好,不知道你用的是什么工具?

我在linux下试过可以,但是在windows下就不行,我用IDLE

flauto | 园豆:157 (初学一级) | 2012-08-10 12:58

@flauto: 没用工具,直接运行python.exe foo.py

Greatest | 园豆:678 (小虾三级) | 2012-08-10 13:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册