0

スレッドの内側からいくつかのスレッドを開くことはできますか?

私は2つの異なる役割を持つWindowsサービスを持っています。サービスが開始すると、役割ごとに1つずつ、合計2つのスレッドを開きます。各スレッドで、サブスレッドを開く必要があります。

コアごとにいくつのスレッドを開くことができますか?

4

2 に答える 2

1

スレッドから他のスレッドをインスタンス化できることは確かです-これが役立つと思われる数について:コアあたりの最適なスレッド数

スレッドには独自のコストがかかることを覚えておく価値があります。パフォーマンスを向上させるためにスレッドを追加することは、ある程度までしか機能しません。

于 2013-03-01T09:48:34.900 に答える
1

厳しい制限はありません...フレームワークに十分なリソースと空きハンドルなどがある限りです。過去に私のアプリの1つは、ピーク時に約150スレッドを実行していました。

スポーンスレッド内では、必要に応じてさらに多くのスレッドをスポーンし、処理が必要なタスクを実行するために使用していました。

しばらくすると、リソースをあまり消費しないThreadPoolの使用に移行し、アプリの起動時に1024のスレッド割り当てがあります。

アクティブなスレッドがOSスケジューラによってスケジュールされるときは、各スレッドを覚えておいてください。多くのホットスレッドが必要ですか。したがって、何もしない場合は、それらのスレッドをスリープ状態にするか、ThreadPoolを使用している場合は、現在の反復を終了してスレッドをプールに戻します。

.NET Frameworkの場合、これらを読む価値があります

スレッドとスレッド

http://msdn.microsoft.com/en-us/library/6kac2kdh.aspx

スレッドとスレッドの使用

http://msdn.microsoft.com/en-us/library/e1dx6b2h.aspx

そうは言っても、あなたが作成するものには注意してください。スレッドの安全性、ロック、同期について心配する必要があるかもしれません。アプリのデバッグも少し難しくなります

于 2013-03-01T09:48:38.070 に答える