以下问题很常见,并且与OutOfMemoryError有关:在JVM线程创建过程和JVM线程容量期间无法创建新的本机线程问题。 这也是我向新技术候选人(高级职位)提出的典型面试问题。 我建议您在查看答案之前尝试提供自己的答复。

题:

为什么不能通过-Xmx扩展Java堆空间容量来增加JVM线程容量(线程总数)?

回答:

Java线程创建过程要求本机内存可用于JVM进程。 通过–Xmx参数扩展Java堆空间实际上会减少 Java线程的容量,因为该内存将从本地内存空间“窃取”。

  • 对于32位JVM,Java堆空间与本机堆处于竞争状态,包括线程容量
  • 对于64位JVM,线程容量将主要取决于您的操作系统物理和虚拟内存的可用性以及当前与操作系统进程相关的调整参数。

为了更好地理解此限制,我现在向您建议以下视频教程。 您还可以从下面的链接下载示例Java程序:

https://docs.google.com/file/d/0B6UjfNcYT7yGazg5aWxCWGtvbm8/edit

参考: QOTD:来自Java EE支持模式和Java教程博客的JCG合作伙伴 Pierre-Hugues Charbonneau的Java Thread vs. Java Heap Space 。

翻译自: https://www.javacodegeeks.com/2013/01/qotd-java-thread-vs-java-heap-space.html

QOTD:Java线程与Java堆空间相关推荐

  1. 什么是java线程?java线程模型的组成

    关于java线程的文章早已是非常多了,本文是对我个人过往学习java,理解及应用java线程的一个总结.此文内容涉及java线程的基本概念,以及什么是java线程等相关问题,希望对大家有所帮助. 什么 ...

  2. qotd服务_QOTD:Java线程与Java堆空间

    qotd服务 以下问题很常见,并且与OutOfMemoryError有关:在JVM线程创建过程和JVM线程容量期间无法创建新的本机线程问题. 这也是我向新技术候选人(高级职位)提出的典型面试问题. 我 ...

  3. 求一个简单的java线程代码,Java线程代码的实现方法

    1.继承Thread 声明Thread的子类 运行thread子类的方法 2.创建Thread的匿名子类 3.实现Runnable接口 声明 运行 4.创建实现Runnable接口的匿名类 5.线程名 ...

  4. java线程状态——java线程状态图

    java线程状态图,网上有很多资源,无外乎两种,如下: 图一 图二 图二是比较多的,可以看出来我贴出的链接这个博主挺有心的,还把右下角的水印给抹去了,赤裸裸的伪原创心理呀. 还有几张图说的也挺不错的, ...

  5. java线程状态(Java线程状态和系统线程)

    线程有几种状态? 一般说有3种,但也有说4种的 就绪:线程分配了CPU以外的全部资源,等待获得CPU调度 执行:线程获得CPU,正在执行 阻塞:线程由于发生I/O或者其他的操作导致无法继续执行,就放弃 ...

  6. Java线程、Java多线程详细介绍

    目录 一.进程和线程的区别 1.1 进程 1.2 线程 二.并发和并行 2.1 并行 2.2  并发 2.3 监控线程的执行情况 三.创建方式 3.1 继承Thread类 思考:为什么不直接通过对象调 ...

  7. java线程callback,Java线程之异步回调(Callback)

    ●介绍 有时候执行一个任务需要很长时间,单线程下线程会处于阻塞状态.这个时候我们会考虑一种非阻塞的处理模式.非阻塞任务在任何编程语言里都必不可少,Java也不例外.多线程就是一个很好的解决办法. 但是 ...

  8. java 线程aba,JAVA中CAS-ABA的问题解决方案AtomicStampedReference

    了解CAS(Compare-And-Swap) CAS即对比交换,它在保证数据原子性的前提下尽可能的减少了锁的使用,很多编程语言或者系统实现上都大量的使用了CAS. JAVA中CAS的实现 JAVA中 ...

  9. java 线程可见性,Java多线程之内存可见性

    Java内存模型( JMM ) : 1) 所有的变量都存储在主内存中 2) 每个线程都有自己独立的工作内存, 里面保存该线程使用到的变量的副本 ( 主内存中该变量的一份拷贝 ) JMM两条规定: 1) ...

最新文章

  1. AjaxPro2在Asp.net中的基本用法
  2. Symbian c++ MCameraObserver类的方法解释
  3. 项目: 最简单的飞机大战游戏
  4. angular9获取id_Angular2获取点击的元素ID
  5. 系统架构师 项目经理 哪个更有前景_中央空调加地暖与五恒系统,哪个更省钱?...
  6. MySQL左连接还有过滤条件_MySQL左连接问题,右表做筛选,左表列依然在?
  7. java中常见的编译错误的是_编译时JAVA最常见的错误有哪些
  8. 如何在js中实现html语言,如何使用脚本标签将JavaScript插入HTML
  9. 小任务:简单实现银行业务系统(附 ideal编辑器固定序列化版本方法)
  10. 最新自动发卡网源码V7.0
  11. matlab心电滤波,应用Matlab对人体的心电信号进行滤波
  12. 索尼Z2(L50t)刷CM12教程
  13. 餐厅预订系统如何选?餐厅预订系统推荐
  14. OKHTTP之缓存配置详解
  15. js 函数function用法
  16. (完整项目源码)GPS定位源码整套管理系统,轨迹播放,车辆管理,电子围栏,报警记录,数据库/人员定位/宠物定位/物流跟踪/资产定位
  17. 思维工具2: Reversal
  18. 20140319十个英语单词
  19. 为element ui+Vue搭建的后台管理项目添加图标
  20. CSUSTOJ-藤原书记的佩斯(简单数学)

热门文章

  1. java客户端作为kafka消费者测试
  2. 在win10系统中安装Visual C++ 6.0的具体方法
  3. java集合——集合与数组间的转换+算法
  4. SpringBoot整合Redis要注意的那些
  5. java –cp ./:_成为Java流专家–第2部分:中级操作
  6. api 获取网络使用情况_您的API是什么情况?
  7. 对话框 函数_通过函数式编程实现动态对话框处理程序
  8. java登录界面命令_Java命令行界面(第3部分):jbock
  9. java web源代码_检测Java Web应用程序而无需修改其源代码
  10. spock_在扩展Spock时输出给定值