問題一覧に戻る
上級パフォーマンスと並行処理
問題116: threading基礎
threadingモジュールは、Pythonでスレッドベースの並行処理を実現します。Threadクラスでスレッドを作成し、start()で開始、join()で終了を待ちます。GIL(Global Interpreter Lock)の影響で、CPUバウンドなタスクでは真の並列実行はできませんが、I/Oバウンドなタスクでは有効です。
# threading基礎
import
import time
# ワーカー関数
def worker(name):
print(f"{name} started")
time.sleep(1)
print(f"{name} finished")
# スレッドを作成
t1 = .(target=worker, args=("Thread-1",))
t2 = threading.Thread(target=, args=("Thread-2",))
# スレッドを開始
t1.()
t2.start()
# スレッドの終了を待つ
t1.join()
t2.()