0

我想同时执行多个进程,例如我想在正在进行的循环下方打印一些字符串...

import time
from threading import Thread
print 'top'
def foo():   
  for i in range(1,10):
    sys.stdout.write(str('\r%s\r'%i))
    sys.stdout.flush()
    time.sleep(1)
timer = Thread(target=foo)
timer.start()
'''bottom'

我希望上面的代码看起来像这样

top
'''looping counter is underway'''
bottom
4

2 回答 2

1

听起来你想阻塞你的主线程,直到你的工作线程完成。为此,您需要加入功能

import time
import sys
from threading import Thread
print 'top'
def foo():   
  for i in range(1,10):
    sys.stdout.write(str('\r%s\r'%i))
    sys.stdout.flush()
    time.sleep(1)
timer = Thread(target=foo)
timer.start()
timer.join()
print 'bottom'
于 2012-08-28T14:47:48.223 回答
0

好吧,请阅读您最喜欢的线程文档。

你需要 join() 线程

timer.join()

http://docs.python.org/library/threading.html#module-threading

于 2012-08-28T14:48:23.980 回答