java虚拟机能并发的启动多少个线程
2016-02-29 13:53
429 查看
新建一个类,导入如下的测试代码:
在我的开发环境上运行结果如下:
每次运行结果并不完全一致,但是大差不差。
影响结果的几个参数:
更多消息参考:http://sesame.iteye.com/blog/622670
public class TestNativeOutOfMemoryError { public static void main(String[] args) { for (int i = 0;; i++) { System.out.println("i = " + i); new Thread(new HoldThread()).start(); } } } class HoldThread extends Thread { CountDownLatch cdl = new CountDownLatch(1); public HoldThread() { this.setDaemon(true); } public void run() { try { cdl.await(); } catch (InterruptedException e) { } } }
在我的开发环境上运行结果如下:
...... i = 3935 Exception in thread "main" java.lang.OutOfMemoryError: unable to create new native thread at java.lang.Thread.start0(Native Method) at java.lang.Thread.start(Thread.java:714) at com.study.thinking.in.java.concurrent.TestNativeOutOfMemoryError.main(TestNativeOutOfMemoryError.java:15)
每次运行结果并不完全一致,但是大差不差。
影响结果的几个参数:
1. 物理内存 使用64位OS能给虚拟机分配更大内存 2.JVMMemory 减少这项参数能增加并发的线程数,非倍数关系 -Xms1024m -Xmx1024m并不能比-Xms512m -Xmx512m多一倍的线程 3.ThreadStackSize 减少单个线程的栈大小,在有效范围内,是倍数关系
更多消息参考:http://sesame.iteye.com/blog/622670
相关文章推荐
- RxJava 过滤操作符 first last single
- OA学习笔记-010-Struts部分源码分析、Intercepter、ModelDriver、OGNL、EL
- javadoc: error - java.lang.reflect.InvocationTarget Exception java.lang.NullPointerException
- spring mvc 中web.xml配置信息解释
- Java设计模式之外观模式(Facade)
- Java基础 静态块、非静态块、构造函数的执行顺序
- Java设计模式(二)——迭代模式
- myEclipse在线生成注册码
- JDK5新特性之可变参数
- RxJava 过滤操作符 ofType
- Java Enum类型
- JAVA理解逻辑程序的书上全部重要的习题
- No result defined for action
- eclipse中缺少插件的问题
- JDK5新特性之静态导入
- JDK5新特性之增强for
- java中的常用包
- [JAVA · 初级]:4.深入理解自增&自减运算
- JAVA学习【8】集合框架HashMap、TreeMap的基本用法
- Eclipse快捷键大全