阅读 26882 次
发表时间:2011-05-09
我的方法是,写个测试类,在服务器操作系统下用命令行启动,还是少说理论多做实践吧。
例如:java -Xms2048m -Xmx2048m -Xss256k TestMaxThread

public class TestMaxThread extends Thread{
public static void main(String[] args){
testMaxThreadTotal();
}

public static void testMaxThreadTotal(){
int maxThreadTotal = 0;
try{
while(true){
new TestMaxThread().start();
maxThreadTotal++;
}
}catch(Exception e){}finally{
System.out.println(maxThreadTotal);
System.exit(1);
}
}

public void run(){
try{
sleep(Integer.MAX_VALUE);
}catch(Exception e){}
}
}
发表时间:2011-05-09
不是跟最大文件描述符有关吗
发表时间:2011-05-09
liyun_1981 写道
我的方法是,写个测试类,在服务器操作系统下用命令行启动,还是少说理论多做实践吧。
例如:java -Xms2048m -Xmx2048m -Xss256k TestMaxThread

public class TestMaxThread extends Thread{
public static void main(String[] args){
testMaxThreadTotal();
}

public static void testMaxThreadTotal(){
int maxThreadTotal = 0;
try{
while(true){
new TestMaxThread().start();
maxThreadTotal++;
}
}catch(Exception e){}
                 finally{
System.out.println(maxThreadTotal);
System.exit(1);
}
}

public void run(){
try{
sleep(Integer.MAX_VALUE);
}catch(Exception e){}
}
}


谢谢了,你给的例子测试的时候通过改变-Xmx和-Xss的大小,能明显看到最多能创建线程数的变化。
不过在catch里面应该用Throwable或者OutOfMemoryError捕获,因为OutOfMemoryError非Exception子类,用Exception捕获不到会产生没有异常产生的误解。
Global site tag (gtag.js) - Google Analytics