现象

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000000000000, pid=8484, tid=0x0000000000005838
#
# JRE version: Java(TM) SE Runtime Environment (8.0_231-b11) (build 1.8.0_231-b11)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.231-b11 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C  0x0000000000000000
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#---------------  T H R E A D  ---------------Current thread (0x000000002a55b800):  JavaThread "pool-2-thread-1" [_thread_in_native, id=22584, stack(0x000000002f120000,0x000000002f220000)]siginfo: ExceptionCode=0xc0000005, ExceptionInformation=0x0000000000000008 0x0000000000000000Registers:
RAX=0x000000002ea0aac0, RBX=0x000000002d294538, RCX=0x0000000001463c60, RDX=0x0000000000000001
RSP=0x000000002f21ebe8, RBP=0x000000002f21ed60, RSI=0x000000000ff1e000, RDI=0x000000002f21ec60
R8 =0x0000000000000001, R9 =0x000000002a488ca0, R10=0x0000000000000000, R11=0x000000002a488ca0
R12=0x0000000000000000, R13=0x000000002d294520, R14=0x000000002f21edb0, R15=0x000000002a55b800
RIP=0x0000000000000000, EFLAGS=0x0000000000010246Top of Stack: (sp=0x000000002f21ebe8)
0x000000002f21ebe8:   0000000180026a81 0000000001463c60
0x000000002f21ebf8:   000000002f21ec38 cccccccccccccccc
0x000000002f21ec08:   cccccccccccccccc 000000002e9f8b10
0x000000002f21ec18:   cccccccccccccccc cccccccc00000000
0x000000002f21ec28:   cccccccccccccccc cccccccccccccccc
0x000000002f21ec38:   0000000001463c60 cccccccccccccccc
0x000000002f21ec48:   fffffffffffffffe cccccccccccccccc
0x000000002f21ec58:   cccccccccccccccc 000000002f21ecb0
0x000000002f21ec68:   000000002df52337 0000000001463c60
0x000000002f21ec78:   000000002f21ed01 0000000000000001
0x000000002f21ec88:   000000002a488ca0 000000002e9f8b10
0x000000002f21ec98:   cccccccccccccccc 000000002a488ca0
0x000000002f21eca8:   cccccccc00000001 0000000003987f10
0x000000002f21ecb8:   00000000039a1df0 000000002a55b9f8
0x000000002f21ecc8:   000000002f21ed70 0000000001463c60
0x000000002f21ecd8:   0000000003987f01 0000000000000001

排查

根据这行日志:

是业务代码里面有线程导致内存溢出了。

发现是Executors使用不当引起的内存泄漏。

解决

以前其实没太在意这种问题,都是使用Executors去创建线程,但是这样确实会存在一些问题,就像这些的内存泄漏,所以一般不要使用Executors去创建线程,使用ThreadPoolExecutor进行创建,其实Executors底层也是使用ThreadPoolExecutor进行创建的。

按照下面的代码正确的使用线程:

        // 阻塞队列容量声明为100个ThreadPoolExecutor executorService = new ThreadPoolExecutor(10, 10,0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(100));// 设置拒绝策略executorService.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());// 空闲队列存活时间executorService.setKeepAliveTime(20, TimeUnit.SECONDS);try {FutureTask<List<HfTagInfo>> futureTask = new FutureTask<>(new Callable<List<HfTagInfo>>() {@Overridepublic List<HfTagInfo> call() throws Exception {//业务代码}});executorService.execute(futureTask);new Thread(futureTask).start();return  futureTask.get();}catch (Exception e){e.printStackTrace();}finally {executorService.shutdown();executorService.awaitTermination(10, TimeUnit.SECONDS);}

Java虚拟机崩溃,出现Problematic frame: # C 0x0000000000000000相关推荐

  1. Java串口通信报错# Problematic frame: # C [rxtxSerial.dll+0x4465](含详细解决流程)

    背景:在win10x64,myEclipse软件中移植他人的Java串口通信项目到自己电脑上时报错 问题:在GUI界面上点击"连接"按钮,GUI界面闪退,并在myEclipse软件 ...

  2. IDEA 运行Java swing项目报错误: # Problematic frame: # C [rxtxSerial.dll+0x4465]

    IDEA 运行Java swing项目报如下错误:然后程序闪退!!! 1.Problematic frame: # C [rxtxSerial.dll+0x4465] 2. No core dump ...

  3. Java 虚拟机 最易理解的 全面解析

    先上一个最容易理解的类实例化的内存模型案例截图: 转载自:https://www.zybuluo.com/Yano/note/321063 周志明著的<深入理解 Java 虚拟机>的干货~ ...

  4. Java虚拟机(JVM)面试题(2022年总结最全面的面试题!!!)

    大家好啊,我是小于哥,Java虚拟无论是在年前面试还是在年后的金三银四面试都是必问的,比如: Java1.8和1.7内存模型有什么差距? 堆栈的区别是什么? 深拷贝和浅拷贝 Java会存在内存泄漏吗? ...

  5. Java虚拟机理解-内存管理

    运行时数据区域 jdk 1.8之前与之后的内存模型有差异,方法区有变化(https://cloud.tencent.com/developer/article/1470519). java的内存数据区 ...

  6. Java虚拟机-JVM

    Java内存模型 为什么说java是跨平台语言 所谓跨平台性,是指java语言编写的程序,一次编译后,可以在多个系统平台上运行; 实现原理:Java程序是通过java虚拟机在系统平台上运行的,只要该系 ...

  7. 《深入理解 Java 虚拟机》转载周志明

    JDK 是什么? JRE 是什么? Java历史版本的特性? Java Version SE 5.0 Java Version SE 6 Java Version SE 7 Java 8 运行时数据区 ...

  8. Java 虚拟机(JVM)原理介绍

    Java 虚拟机[JVM]原理介绍 1.概述 2.Java类的加载原理机制 2.1 .Java类的加载过程 2.2 .Class loader (类加载器) 2.2.1 类的生命周期 2.2.1.1 ...

  9. 《深入理解Java虚拟机》-周志明(转)

    (转载):如果文章有错误,欢迎评论或私信指出,谢谢~ https://blog.csdn.net/Yano_nankai/article/details/50957578 本文固定链接:https:/ ...

最新文章

  1. 回调函数在replace方法中的应用
  2. 怎么安装python3-centos编译安装python3怎么做?
  3. MICROSOFT VISUAL STUDIO COMMUNITY 2015软件许可条款
  4. leetcode笔记:Search in Rotated Sorted Array
  5. SAP Spartacus 使用 customized API
  6. 单元和集成测试的代码覆盖率
  7. 第七篇:Spring Boot 整合_Thymeleaf 入门试炼 QuickStart
  8. oracle插入时间报错,Oracle 插入时间时 报错:ORA-01861: 文字与格式字符串不匹配 的解决办法...
  9. Xcode8 + Swift3.0 创建一个app基础框架
  10. redis远程连接的几种方式
  11. 注意!黑客可以通过CSS3功能攻击浏览器
  12. 支付宝小程序获取手机号授权
  13. Python RPM包制作
  14. golang 获取文件大小
  15. 百度地图中心点偏移-Javascript
  16. 基于python压缩gif图片大小。
  17. 呼叫中心坐席功能在职场中的应用
  18. Facebook 的开源静态分析工具Infer
  19. 将同一文件夹下的图片转化为视频
  20. numpy中的arange函数

热门文章

  1. 智能指纹锁办理3C认证多少钱
  2. maven settings.xml 文件下载,阿里仓库
  3. 春节没有年味?今年就去这些年味浓的地方过年吧!
  4. Vault: 基础教程之入门及使用介绍
  5. JQuery实现数组顺序倒转
  6. 前端技术学习第三讲:JavaScript基础语法
  7. OOD : A Self-supervised Framework for Unsupervised Deep Outlier Detection e3笔记
  8. 联想台式电脑开机时不显示主板logo直接黑屏进入锁屏界面因此无法进入bios模式解决方法
  9. FPU (3) 指數
  10. GISER的技术栈(亲们,又更新了哦!)