トップPython > マルチスレッド

マルチスレッド

1.マルチスレッド

スレッドには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

2.実例

タイル地図作成プログラムでは、次の形のマルチスレッドが用いられている。 実行結果は先の二つプログラムと同じである。

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"

A.リファレンス

[1] Pythonのマルチスレッドプログラミング
[2] Pythonでマルチスレッド処理