選択した言語でスレッドを作成する方法と、ミューテックスや共有データの危険性などについては理解していますが、O/S がスレッドを管理する方法と各スレッドのコストについては確信があります。私には一連の質問がありますが、それらはすべて関連しており、私の理解の限界を示す最も明確な方法は、おそらくこれらの質問を使用することです.
スレッドを生成するコストはいくらですか? ソフトウェアを設計するときに心配する価値さえありますか? スレッドを作成するためのコストの 1 つは、独自のスタック ポインターとプロセス カウンターである必要があります。次に、スケジューラーによってコアに出入りするときに、すべての作業レジスターをコピーするためのスペースが必要ですが、他に何がありますか?
1 つのプログラムで使用できるスタックの量は、プロセスのスレッド間または先着順で均等に分割されますか?
(プログラムの)起動時にハードウェアのコア数をどうにかしてチェックできますか。N コアのマシンで実行している場合、スレッド数を N-1 に保つ必要がありますか?