スレッド
Thread
糸の意味
プロセスの中で、複数の実行位置を持ち、プログラムを並行動作させるのがスレッド。
プロセス空間(主にメモリ)を共有するので、APIを呼び出して通信をする必要がない。
プロセス空間を共有しているため、あるスレッドが暴走してしまった場合、そのスレッドだけを適切に止めて、他のスレッドを継続する方法はないと考えた方がよい。 プロセス空間の内容の整合性が保証されない。このため、プロセスごと強制終了するしかない。(リソースを一切共有しないのであれば可能ではあるが、非現実的とされる。)
プログラム言語レベルでスレッドに対応しているものと、ライブラリレベルで対応しているものとがある。一般的にはライブラリレベルでの対応の方が多い。
CPUのコアが1つだった時には、タイムスライスによる疑似並行実行だったが、現代ではCPUのコアが複数あるため、本当に並行実行される。何も考えずに使うと非同期処理による不整合が発生する。