用語集に戻る
プログラミング基礎初級

スレッド

スレッド

一言で言うと

1 つの質問に紐づく返信の集まり。

もう少し詳しく

一言で言うと

プロセス内で独立して実行される処理の最小単位。

もう少し詳しく

スレッドはプロセス内で独立して実行される処理の最小単位で、同一プロセス内のヒープメモリやグローバル変数などのリソースを共有しながら並行して動作します。1 つのプロセスが複数のスレッドを持つことをマルチスレッドと呼び、処理の並列化によってパフォーマンス向上が期待できます。

一方、複数のスレッドが共有データへ同時にアクセスすると競合状態(レースコンディション)が発生するリスクがあります。このような問題を防ぐために「スレッドセーフ」な設計や、ミューテックス・ロックを用いた排他制御が必要になります。また、複数のスレッドが互いにロックの解放を待ち続けてしまう「デッドロック」にも注意が必要です。

実務でどう使うか

  • シングルスレッド vs マルチスレッド ── Python・JavaScript はデフォルトでシングルスレッドですが、ライブラリや非同期処理で並行性を実現します

  • スレッドセーフの考慮 ── 共有データへのアクセスには同期処理(ロック・アトミック操作)を使い、競合状態を防ぎます

  • デッドロック回避 ── 複数のロックを取得する順序を統一するなど、設計段階から意識することが重要です
  • 関連する章

    Ch3, Ch4 で詳しく学べます。

    関連する用語

    この用語を学べるコース

    この用語を実際に使ってみよう

    チョットデキルなら、5分のレッスンで実際にコードを書いて学べます。

    コース一覧を見る