ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
プロセス内に一つ以上生成され、OSがCPUの実行時間を割り当てるための基本的な単位。
スレッドは、プロセス内に一つ以上生成することができる。こういった状態をマルチスレッドという。
同一プロセス内に生成されたスレッドは、メモリー空間や多くのリソースを共有している。このためスレッド間で直接情報交換が可能であるため、マルチプロセス時に発生するパフォーマンス低下は存在しない。
マルチスレッド対応のOSで、例えば時間の掛かるI/O処理中でも他の処理が平行して行なえるのは、複数のスレッドに分割して処理され、実行可能なものから順次処理されているからである。
なお、プロセスとタスクは、プログラマーから見た処理の単位がプロセス、システムから見た処理の単位がタスクと呼び分ける以外、特に差はないものと定義されている。
複数のスレッド間で、同期をとる場合や、あるいは一つのリソースを共有し、その使用中に他を排他するために、ミューテックスやセマフォが使われる。
特定のスレッドローカルな変数(これをスレッドローカルストレージという)を使いたい場合は、言語の機能を使うか、またはオペレーティングシステム(OS)のAPIを使うことで実現する。OSは各スレッドを管理するための情報を持っており、これはスレッドローカルである。このなかに、数に限りはあるが任意の値を格納することが可能で、これを使うとスレッドローカルな変数となる。errnoなども、その一例である。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます