pythonで並列処理 (thread)

threadを使って簡易的に並列処理を実装することができる。

threading.Threadクラスの生成時にtarget引数に指定する関数を、別スレッドで並列的に実行できる。

※並列して処理が動作するため、複数のスレッドでデータを共有する場合にはロックなどを使用してスレッドセーフにする必要がある。

# 1秒おきと2秒おきにprintする処理をthreadで実行
import threading
import time

def worker(interval):
    for n in range(3):
        time.sleep(interval)
        print("%s --> %d" % (threading.current_thread().name, n))

th1 = threading.Thread(name="a", target=worker, args=(1,))
th2 = threading.Thread(name="b", target=worker, args=(2,))

th1.start()
th2.start()

参考:17.1. threading — スレッドベースの並列処理

※threadで実行しても、完全に同時に2つの処理が動作するわけではなく、CPython実装ではマルチコアを活かした並行処理はmultiprocessingを使わないとできない。

関連記事:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)