论坛首页 招聘求职论坛

关于jvm最大线程数(支付宝面试题)

浏览 26644 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间: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){}
}
}
0 请登录后投票
   发表时间:2011-05-09  
不是跟最大文件描述符有关吗
0 请登录后投票
   发表时间: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捕获不到会产生没有异常产生的误解。
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics