Javaでスレッドの最大数をチェックするプログラムを作成しました
public class Test extends Thread {
static int count;
public static void main (String [] args){
for(;;){
count++;
System.out.println(count);
new Test().start();
}
}
@Override
public void run() {
try {
Thread.sleep(100000000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
最初の反復 -Xmx1024m 、最大スレッド = 2011 > 2 回目の反復 -Xmx512m 、最大スレッド = 3350 > 3 回目の反復 -Xmx2m 、最大スレッド = 5112
-Xss1m ,max thread = 1011 を設定してみました。次に、-Xss256k max thread 4900+ を設定しました。
2 つの質問が
あります。1) Java のスタックとヒープ サイズの関係は何ですか?
2)スレッドの最大数がJavaに依存する要因は何ですか?