Windows または Linux システムはいくつのスレッドを持つことができますか?
システム内のスレッドの最大数をチェックするマルチスレッドの移植可能なコードを書いています。
Windows または Linux システムはいくつのスレッドを持つことができますか?
システム内のスレッドの最大数をチェックするマルチスレッドの移植可能なコードを書いています。
実際に「これを知る必要がある」場合は、設計が悪いと確信しています。最新の OS はすべて、数千のスレッドをサポートできます。
制限は、通常、「システム X で作成できるスレッドの数」よりも、使用可能なメモリと CPU リソースに関するものです。つまり、スレッドが実際に何かを実行し、実際にわずかな量のメモリを使用している場合、システムは実行されます。理論上の最大数のスレッドが作成される前にメモリー不足になります。
たとえば、私のマシン/proc/sys/kernel/threads-max
では 250000 を超えています。私のマシンには 16GB の RAM があるため、スレッドごとに約 64KB です。そして、それはすべてのメモリが実際にスレッドで利用できる場合です...その一部はカーネルコード、ファイルシステムバッファなどになります.
したがって、実際には、システムがサポートできる理論上のスレッド数ではなく、メモリが限界になります。
Linux、それはとても簡単です。cat /proc/sys/kernel/threads-max
Windows、それほどではありません。基本的には、使用している RAM の量と各スレッドのスタックに割り当てる量によって異なります。「 Windows Server 2003 のスレッドの最大数は?」を参照してください。; しかし、基本的には<1000