2011-01-09 15 views
2

システムで実行中のスレッドの上限を設定し、メモリとCPU使用率を最適化するソリューションが必要です(たとえば、メモリのサイズが既知の合計スレッドスタックメモリを超えることはありません)などJavaでのスレッド管理

そのJava用のJavaテクノロジはありますか?

おかげ

+0

固定サイズのスレッドプールを使用する以外に、必要のないスレッドの使用を制限する可能性があります。なぜこれらの制限を実施したいのか、そしてこれらの制限に達すると起こることを期待するのか説明できますか? –

答えて

2

スレッドのスタックサイズはJavaで一定であるので、あなたは際限なく成長している個々のスレッドのサイズを心配する必要はありません。

多くのスレッドで何かをしたいコードを作成していて、与えられたスレッド数を超えて消費しないようにしたい場合は、fixed thread count executorのようなものを使用できます。

他に制御権を持たないプログラムのスレッド数を制限したいですか?おそらく、オペレーティングシステムごとに特別な処理を行う必要があります。たとえば、Linuxでは、プロセスごとのスレッド制限がありません(すべてのプロセスに共通のグローバル制限のみ)。

2

「プロセスアカウンティング」と呼ばれるものを検索しているようですが、スレッドだけが検索されているようです。 1つのJVM内ではこれは不可能であり、すべてのスレッドがJVMのすべてのメモリを消費する可能性があります。また、優先順位を最高値に設定すると、JVM内の他のスレッドからCPUを盗み出すこともあります。

関連する問題