【すれっど】
スレッド とは?
最終更新:
💡 一つのプロセスの中に、複数の処理の流れ
プロセス内の処理の流れを表す実行単位。同じプロセスのスレッドはメモリなどを共有する。複数の処理を並行して進められ、複数コアなどの条件が整えば並列実行もできる。
📌 このページのポイント
スレッドって何?
プロセスとどう違うの?
マルチスレッドなら、全部同時に計算するの?
一つのコアでは実行を切り替えて並行して進めるよ。複数コアなら並列実行できる場合がある。ただしGILが有効なCPythonでは、通常Pythonコードを実行するスレッドは一度に一つなんだ。I/O待ちを重ねる用途では、それでも役立つよ。
何が難しいの?
共有データの読み書きが、タイミングによって意図しない結果になることだよ。たとえば二つのスレッドが残高100円を読んで50円ずつ引き、どちらも50円を書き戻すと、結果は0円にならない。ロックなどで読み取りから更新までを守る設計が必要なんだ。
Web Workerもスレッドなの?
まとめ:ざっくりこれだけ覚えればOK!
「スレッド」って出てきたら「プロセスの中を進む処理の流れ」と思えばだいたいOK!
📖 おまけ:英語の意味
「Thread」 = 糸・処理の流れ
💬 プログラムの実行の流れを「糸」に例えた呼び方。同じプロセスで複数の流れを進められるよ