情処用語辞典

スレッド

説明

プログラムの最小の実行単位のことです。一般的に、プログラムは1つ以上のプロセスで構成されていて、プロセスは1つ以上のスレッドで構成されています。

複数のスレッドを同時に実行することでプログラムの処理速度を向上させることができます。複数のスレッドを同時に実行して処理することをマルチスレッドと言います。反対に1つのスレッドで処理することをシングルスレッドと言います。

スレッド間ではメモリ空間を共有しているため、複数のスレッドが同じ箇所のメモリを同時にアクセスすることでデータの不整合が発生する場合があります。これを防止するために排他制御が必要になる分、シングルスレッドに比べてマルチスレッドの方が処理が複雑になりがちです。

余談

自分はあまりマルチスレッドのプログラムを書くことがないので経験がないのですが、マルチスレッド特有のバグはやっかいだそうです。それぞれのスレッドの処理タイミングによって事象が発生したりしなかったりで再現性が乏しかったり、デバッガを使うとそのせいで事象が発生しなくなったりするということもあって、バグの原因追及や修正の確認が難しいということがあるみたいですね。