興味の源泉

自分が興味を起こせるようなネタを雑多に書き綴るブログ

【Python】マルチスレッドの作成

スレッドを作成する方法

まずはモジュールをインポートします。

import threading

threading.Thread関数でスレッドを作成します。 戻り値はスレッドのオブジェクトです。

thread_obj = threading.Thread(target=実行する関数, args=引数)

スレッドのオブジェクトのstart関数でスレッドを開始します。

thread_obj.start()

スレッドの終了を待つ場合はjoin関数を使います。

thread_obj.join()

テストコード

以下は3秒+αの時間待って threadX の文字を出力し、すべて終わったらプログラムの終了の文字列を出力します。

import threading
import time

# 呼び出し関数
def test1(delay, text):
    time.sleep(delay)
    print(text)

# 0~2までのスレッドを作成
# thread_listにスレッドのオブジェクトを保存
thread_list = []
for i in range(3):
    thread_obj = threading.Thread(target=test1,args=(3+i, 'thread'+str(i)))
    thread_obj.start()
    thread_list.append(thread_obj)

# スレッドの終了を待つ
for th in thread_list:
    th.join()
    
print('プログラムの終了')

まとめ

短い記事になってしまいましたが、最近はPythonを勉強しているのでPythonの記事を備忘録としても残していきたいところです。