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 に答える