threading
は並列処理を行うにあたって用いられるPython
の標準ライブラリです。当記事ではthreadingを用いた並列処理について簡単に取りまとめました。
threadingの基本的な使い方
threading.Thread
を用いることで並列処理を行うことができます。当節では以下サンプルコードをいくつか確認します。
引数や返り値がない場合のサンプルコード
実行する関数に引数や返り値がない場合、threading.Thread
にtarget
で関数名を指定することで並列処理を行うことができます。
threading1.py
import threading
def function1():
for i in range(1000):
if (i+1)%100==0:
print(i+1)
def function2():
for letter in 'abcdefghij':
print(letter)
# スレッドを作成
thread_1 = threading.Thread(target=function1)
thread_2 = threading.Thread(target=function2)
# スレッドの実行
thread_1.start()
thread_2.start()
# スレッドが終了するのを待つ
thread_1.join()
thread_2.join()
・実行結果
100
200
300
400
a
b
c
d
500
e
f
g
h
600
i
700
j
800
900
1000
実行結果より、thread_1
とthread_2
でfunction1
とfunction2
がそれぞれ並列で実行されていることが確認できます。実行結果の表示順は実行したタイミングによって変わるので何度か確認してみると良いと思います。
また、threading.Thread
を用いるにあたってはthreading.Thread.start
でスレッドを実行し、threading.Thread.join
でスレッドが終了するのを待つというのは抑えておくと良いです。