博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何科学的高效率的选择创建线程数
阅读量:7223 次
发布时间:2019-06-29

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

如何科学的高效率的选择创建线程数

这里写图片描述

因为我电脑的配置有点高 ,所以创建了九千多条没出错,我也不想在测试了,csdn再更新 我也老是登陆不了所以我就直接把答案放出来,以前测试的结果:

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:693)    at geym.zbase.ch7.oom.MultiThreadOOM.main(MultiThreadOOM.java:23)

分析问题:

这个异常问题本质原因是我们创建了太多的线程,而能创建的线程数是有限制的,导致了异常的发生。能创建的线程数的具体计算公式如下:

(MaxProcessMemory - JVMMemory - ReservedOsMemory) / (ThreadStackSize) = Number of threads

MaxProcessMemory:指的是一个进程的最大内存

JVMMemory : JVM内存
ReservedOsMemory: 保留的操作系统内存
ThreadStackSize : 线程栈的大小

注:在创建一个线程的时候,虚拟机会在JVM内存创建一个Thread对象同时创建一个操作系统线程,而这个系统线程的内存用的不是JVMMemory,而是系统中剩下的内存(MaxProcessMemory - JVMMemory - ReservedOsMemory)。


【正在看本人博客的这位童鞋,我看你气度不凡,谈吐间隐隐有王者之气,日后必有一番作为!下面有个“顶”字,你就顺手把它点了吧(要先登录CSDN账号哦 )】


—–乐于分享,共同进步!

—–更多文章请看:


转载于:https://www.cnblogs.com/hainange/p/6153833.html

你可能感兴趣的文章
dedecms建的网站如何去掉/index.html
查看>>
Android4.0(Phone)来电过程分析
查看>>
Postgresql中的数据类型大全
查看>>
Java 动态太极图 DynamicTaiChi (整理)
查看>>
在WIN7系统的笔记本上建立WIFI热点
查看>>
Struts2的Convention插件
查看>>
2016第2周日
查看>>
Centos 6.5 Oracle11g 安装
查看>>
linux中断申请之request_threaded_irq 【转】
查看>>
3、使用Lucene实现千度搜索
查看>>
单链表逆序的几种方法
查看>>
Hardwood Species
查看>>
android 项目中log信息的正确处理
查看>>
C# 定时器运用
查看>>
【转载】NIO客户端序列图
查看>>
Maven单元测试报告及测试覆盖率
查看>>
做开发的目的是为了什么
查看>>
怎样为virtualbox添加新的分辨率
查看>>
HDU 1853Cyclic Tour(网络流之最小费用流)
查看>>
网络通信分享(二):外网ip和内网ip
查看>>