プロセス内に複数の流れ
を持ちます。
...
一つのスレッドしか持たないプログラムをシングルスレッドプログラム、2つ以上のスレッドを持つプログラムをマルチスレッドプログラムと呼びます。
長所
- ページテーブルのコピーが不要なため、
生成時間が短い
- 様々なリソースを同じプロセス内の全スレッド噛んで共有するため、メモリをはじめとした
リソース消費量が少ない
。 - 全スレッド間でメモリを共有するため、見かけ上の協調動作がしやすい。
気づき
協調動作とはなんだろう
短所
-
一つのスレッドの障害が全スレッドに影響
する。例えば一つのスレッドが不正なアドレスを参照して以上終了すると、プロセス全体が以上終了する - 各スレッドが呼び出す処理が
マルチスレッドプログラムから呼び出し良いかどうかを熟知しておく必要
がある。例えば内部的にグローバル変数を排他制御なしにアクセスしている処理は、スレッドセーフではい。この場合は、同時に一つのスレッドからしか当該処理を 呼ばないようにプログラマが制御しないければならない
。
気づき
スレッドを意識したプログラムをしたことがないのでいつか触れるのだろう。
出典
感想
この後のカーネルスレッド、ユーザスレッドに違いがいまいち理解できないので飛ばす