2011-11-11 9 views

答えて

1

最大数があるとは限りません。さて、私たちは有限の量のメモリを使用しているので、メモリに収まるスレッド数または追跡可能なスレッド数になります。それぞれのシステムは異なっており、私はJavaとCがこれを提供する機能を持っていないことを知っています。 C#では、特定のオブジェクトやアプリケーションに必要なメモリ量を知ることができますので、見積もりを計算することができます。

システムでこれをテストできます。スレッドを生成し、メモリが足りなくなったときに表示されるサンプルアプリケーションを作成します。カウンタを使用してカウントします。これにより、おおよそのシステムの範囲がわかります。

Javaでは、スレッドプールでExecutorServiceを使用することができます。使用するエグゼキュータサービスによっては、より多くのジョブを送信すると、スレッドを生成し続けることができます。 同様の手法がC#に​​存在します。

スラッシングを発生させ避ける最大スレッド数はです。

OSを引き継ぎ、独自のプロセス/スレッド管理を実行しようとしていますか?あなたはこれをしてはいけません。

+0

非常に多くのスレッドが必要な人は、ThreadPoolの使用やソフトウェアのリエンジニアリングを検討する必要があります。 –

関連する問題