- threadをimportしてthread.start_new_thread(func, args)にスレッドとして動かした関数を指定。
- スレッド化したいクラスで、threading.Treadを継承する
threadはスレッドの終わりを検知する機能が無い。
=メインメソッドの実行が終わると、実行途中でも中断されてしまう。
(これを無理やり同期取ろうとするとwhile文でチェックし続けるとか
アホなコードになってしまいました。)
threadingではスレッドの実行終了のタイミングまで、実行を一時停止する機能がある。
[使用例]
import threading
import time
class testTreading(threading.Thread):
def run(self):
for i in range(1, 5):
print i
time.sleep(2)
r = registerRelationShip()
r.start()
r.join(1000) #スレッドの終了までの待ち時間
print "end"
[出力]
1
2
3
4
end
実行したい内容はrun()メソッドに書いて、
それをstart()メソッドで実行させる。
join()メソッドでスレッドの終了を待つので、
endが出力されるのは一番最後。
こっちの方が使い勝手良さそうかな。
0 件のコメント:
コメントを投稿