锁定老帖子 主题:关于jvm最大线程数(支付宝面试题)
精华帖 (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){} } } |
|
返回顶楼 | |
发表时间: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捕获不到会产生没有异常产生的误解。 |
|
返回顶楼 | |