異なるWindowsシステムで実行できるスレッドの最大数を知る方法があるか教えてください。異なるWindowsシステム上で実行されるスレッドの最大数を確認してください
たとえば、 - (仮定)Windows 32ビットシステムでは、最大4000のスレッドを実行できます。
異なるWindowsシステムで実行できるスレッドの最大数を知る方法があるか教えてください。異なるWindowsシステム上で実行されるスレッドの最大数を確認してください
たとえば、 - (仮定)Windows 32ビットシステムでは、最大4000のスレッドを実行できます。
最大数があるとは限りません。さて、私たちは有限の量のメモリを使用しているので、メモリに収まるスレッド数または追跡可能なスレッド数になります。それぞれのシステムは異なっており、私はJavaとCがこれを提供する機能を持っていないことを知っています。 C#では、特定のオブジェクトやアプリケーションに必要なメモリ量を知ることができますので、見積もりを計算することができます。
システムでこれをテストできます。スレッドを生成し、メモリが足りなくなったときに表示されるサンプルアプリケーションを作成します。カウンタを使用してカウントします。これにより、おおよそのシステムの範囲がわかります。
Javaでは、スレッドプールでExecutorService
を使用することができます。使用するエグゼキュータサービスによっては、より多くのジョブを送信すると、スレッドを生成し続けることができます。 同様の手法がC#に存在します。
スラッシングを発生させ避ける最大スレッド数はです。
OSを引き継ぎ、独自のプロセス/スレッド管理を実行しようとしていますか?あなたはこれをしてはいけません。
非常に多くのスレッドが必要な人は、ThreadPoolの使用やソフトウェアのリエンジニアリングを検討する必要があります。 –