1

スレッドについて明確にする必要があります。スレッドの 1 MB メモリ オーバーヘッドが要求されるのはいつですか? スレッド オブジェクトが作成されたとき (コストラクタ) ですか、それとも Start() メソッドが呼び出されたときですか? Start メソッドはすぐに (スレッドが実際に開始する前に) 戻りますか?

N 個のスレッドを作成して開始するループがある場合 > ThreadPool の maxThreads の場合、ループはすぐに完了しますか、それともすべてのスレッドが作成されて開始されるまで待機しますか?

ありがとうございました

4

1 に答える 1

3

スレッド オブジェクトが作成されたとき (コストラクタ) ですか、それとも Start() メソッドが呼び出されたときですか?

スレッドが実際に開始されると、1mb (デフォルトですが、スレッドのスタック サイズであるため構成可能) が作成されます。

Start メソッドはすぐに (スレッドが実際に開始する前に) 戻りますか?

Start()メソッドは非同期で、すぐに戻ります 。Thread.Startのドキュメントでは、「スレッドの実行がスケジュールされる」と明記されています。

N 個のスレッドを作成して開始するループがある場合 > ThreadPool の maxThreads の場合、ループは完全に高速になりますか、それともすべてのスレッドが作成されて開始されるのを待ちますか?

すぐに完了します (または、少なくともスレッドの起動を待機しません)。

于 2013-04-02T21:41:12.173 に答える