2009年10月14日水曜日

スレッドを待機させる

threadingモジュールのEventオブジェクトを使う

# -*- coding: utf-8 -*-

import threading
import time

# Eventオブジェクトを生成する
event = threading.Event()

class A(threading.Thread):
    def run(self):
        for i in range(3):
            # setメソッドが呼び出されるまでスレッドを待機させる
            event.wait()
            print "hello"

th = A()

th.start()

time.sleep(2)
event.set()  # 待機を解除する
event.clear()  # setしたままだとwaitで待機しなくなる

time.sleep(2)
event.set()

詳細はドキュメントで

0 件のコメント:

コメントを投稿