スレッドの最大の特徴は、同じプロセスに属するスレッド同士であれば、メモリ空間(データ領域やヒープ領域)や開いているファイルなどの資源を「共有」しているという点です。これにより、スレッド間でのデータの受け渡しは、プロセス間通信のような複雑で重い処理を経由することなく、共通のメモリを読み書きするだけで極めて高速に行うことができます。また、新しいスレッドの生成や、スレッド間の切り替え(コンテキストスイッチ)にかかるシステムの負荷(オーバーヘッド)は、プロセスを生成・切り替える場合と比較してはるかに小さく、「軽量プロセス(LWP)」と呼ばれることもあります。ただし、複数のスレッドが同じデータを同時に書き換えようとすると、データが破壊されたり矛盾が生じたりする危険性があるため、プログラミングの際には「排他制御」と呼ばれる慎重な同期処理の設計が不可欠となります。これに失敗すると、デッドロック(お互いに処理の完了を待ち合ってフリーズしてしまう現象)などの深刻なバグを引き起こす原因となります。
プロセスとの明確な違いを理解しているかが、試験での最大の得点ポイントになります。
プロセス、マルチコア、排他制御