スレッドにはthreading.Thread のサブクラスを作る方法と threading.Thread のインスタンスを作成する方法がある[1]。
サブクラスを作るには次のようにする。
import threading class TestThread(threading.Thread): def __init__(self): threading.Thread.__init__(self) def run(self): for i in range(3): print "sub thread : " + str(i) if __name__ == '__main__': t1 = TestThread() t1.start() t1.join() print "end"
インスタンスを作成するには次のようにする。
import threading def foo(n): for i in range(n): print "sub thread : " + str(i) if __name__ == '__main__': t1 = threading.Thread(target=foo, name="foo", args=(3,)) t1.start() t1.join() print "end"
いずれも実行結果は次のようになる。
sub thread : 0 sub thread : 1 sub thread : 2 end
タイル地図作成プログラムでは、次の形のマルチスレッドが用いられている。 実行結果は先の二つプログラムと同じである。
import threading class Test: def run(self): for i in range(3): print "sub thread : " + str(i) if __name__ == '__main__': test = Test() t1 = threading.Thread(target=test.run) t1.start() t1.join() print "end"