如何使用线程来无限地同时运行2个进程?我有一个聊天程序,我想输入打印出来的东西。
我对线程进行了一些研究,看起来真的很复杂。到目前为止我所拥有的是
t = Thread(target=refresh)
t.daemon = True
t.start()
我有一个refresh()函数。
但是我很确定这是错的,而且我不知道如何在我的输入旁边无限地运行它。有人可以解释线程是如何工作的,以及我如何能够无限地运行它与另一个无限循环?
答案 0 :(得分:1)
你必须像在代码中一样启动你的线程。 重要的是等待线程完成(即使它是无限循环)因为没有它,你的程序将立即停止。 只需使用
t.join()
你的代码将运行直到t线程结束。如果你想要两个线程,就这样做
t1.start()
t2.start()
t1.join()
t2.join()
你的两个主题将同时运行
对于崩溃问题,使用多线程,您必须查看Mutex以获取IOerror
答案 1 :(得分:0)
#!/usr/bin/python
import thread
import time
# Define a function for the thread
def print_time( threadName, delay):
count = 0
while count < 5:
time.sleep(delay)
count += 1
print "%s: %s" % ( threadName, time.ctime(time.time()) )
# Create two threads as follows
try:
thread.start_new_thread( print_time, ("Thread-1", 2, ) )
thread.start_new_thread( print_time, ("Thread-2", 4, ) )
except:
print "Error: unable to start thread"
while 1:
pass
结果是:
Thread-1: Thu Jan 22 15:42:17 2009
Thread-1: Thu Jan 22 15:42:19 2009
Thread-2: Thu Jan 22 15:42:19 2009
Thread-1: Thu Jan 22 15:42:21 2009
Thread-2: Thu Jan 22 15:42:23 2009
Thread-1: Thu Jan 22 15:42:23 2009
Thread-1: Thu Jan 22 15:42:25 2009
Thread-2: Thu Jan 22 15:42:27 2009
Thread-2: Thu Jan 22 15:42:31 2009
Thread-2: Thu Jan 22 15:42:35 2009
自:http://www.tutorialspoint.com/python/python_multithreading.htm
从那里你可以弄清楚如何在线程之间进行交谈。