博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java虚拟机能并发的启动多少个线程
阅读量:6123 次
发布时间:2019-06-21

本文共 1126 字,大约阅读时间需要 3 分钟。

新建一个类,导入如下的测试代码:

1 public class TestNativeOutOfMemoryError { 2     public static void main(String[] args) { 3  4         for (int i = 0;; i++) { 5             System.out.println("i = " + i); 6             new Thread(new HoldThread()).start(); 7         } 8     } 9 10 }11 12 class HoldThread extends Thread {13     CountDownLatch cdl = new CountDownLatch(1);14 15     public HoldThread() {16         this.setDaemon(true);17     }18 19     public void run() {20         try {21             cdl.await();22         } catch (InterruptedException e) {23         }24     }25 }

在我的开发环境上运行结果如下:

1 ......2 i = 39353 Exception in thread "main" java.lang.OutOfMemoryError: unable to create new native thread4     at java.lang.Thread.start0(Native Method)5     at java.lang.Thread.start(Thread.java:714)6     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

转载地址:http://rxgka.baihongyu.com/

你可能感兴趣的文章
舍弃Python,为什么知乎选用Go重构推荐系统?
查看>>
在soapui上踩过的坑
查看>>
MySQL的字符集和字符编码笔记
查看>>
ntpd同步时间
查看>>
must implement java.io.Serializable hessian
查看>>
Microsoft Licenses Flash Lite for Windows Mobile Users
查看>>
HDOJ 2020 绝对值排序
查看>>
HDOJ/HDU 2560 Buildings(嗯~水题)
查看>>
Maven编译时跳过Test
查看>>
Spring Boot 整合Spring Security 和Swagger2 遇到的问题小结
查看>>
[20170628]12C ORA-54032.txt
查看>>
除以2
查看>>
高可用集群原理解析
查看>>
Nginx配置URL转向tomcat
查看>>
极客Web前端开发资源大荟萃#001
查看>>
让div固定在某个位置
查看>>
Java开发环境Docker镜像
查看>>
从无到有,WebService Apache Axis2初步实践
查看>>
任务调度(一)——jdk自带的Timer
查看>>
UIKit框架(15)PCH头文件
查看>>