Python线程和输入

时间:2016-12-18 22:17:16

标签: python multithreading python-multithreading

我是Python threading的新手,我需要一些代码的帮助,我正在努力将IRC客户端作为业余爱好,但我需要能够让用户能够输入文本并拉动来自IRC服务器等的消息

在此示例中,在获取用户输入的同时,在用户输入的文本之后输出.我希望输入与收听时输出的内容分开功能

import threading
import time
import sys


def listen():
    sys.stdout.write("Listening...")
    sys.stdout.flush()
    for i in range(5):
        time.sleep(1)
        sys.stdout.write(".")
        sys.stdout.flush()
    return

def test_input():
    input("Here: ")
    return

threads = []
listen_thread = threading.Thread(target=listen)
threads.append(listen_thread)
listen_thread.start()

input_thread = threading.Thread(target=test_input)
threads.append(input_thread)
input_thread.start()

目前,如果我打字你好,那你怎么样?我得到:Listening...Here: .hell.o there. how ar.e you.

我想Listening........ Here: hello there how are you 在'倾听'

之后使用.&#39

(对不起措辞)

1 个答案:

答案 0 :(得分:0)

启动listen()线程后立即启动test_input()线程。并且因为test_input()线程并行运行,所以立即打印“Here” 只有在打印完所有点后才能调用a.start()。 (需要5秒钟)。

还尝试使用更具描述性的变量名称。