seo排名整站优化,网站制作公司 顺的,建设手机银行的网站,中国建设银行网站首页企业作者#xff1a;gosaintmrc来源#xff1a;http://sina.lt/gqaM最近网上出现一个美团面试题#xff1a;“一个线程OOM后#xff0c;其他线程还能运行吗#xff1f;”我看网上出现了很多不靠谱的答案。这道题其实很有难度#xff0c;涉及的知识点有jvm内存分配、作用域、g… 作者gosaintmrc来源http://sina.lt/gqaM最近网上出现一个美团面试题“一个线程OOM后其他线程还能运行吗”我看网上出现了很多不靠谱的答案。这道题其实很有难度涉及的知识点有jvm内存分配、作用域、gc等不是简单的是与否的问题。由于题目中给出的OOMjava中OOM又分很多类型比如堆溢出“java.lang.OutOfMemoryError: Java heap space”、永久带溢出“java.lang.OutOfMemoryError:Permgen space”、不能创建线程“java.lang.OutOfMemoryError:Unable to create new native thread”等很多种情况。本文主要是分析堆溢出对应用带来的影响。先说一下答案答案是还能运行。代码如下public class JvmThread {public static void main(String[] args) {new Thread(() - {Listbyte[] list new ArrayListbyte[]();while (true) {System.out.println(new Date().toString() Thread.currentThread() );byte[] b new byte[1024 * 1024 * 1];list.add(b);try {Thread.sleep(1000);} catch (Exception e) {e.printStackTrace();}}}).start();// 线程二new Thread(() - {while (true) {System.out.println(new Date().toString() Thread.currentThread() );try {Thread.sleep(1000);} catch (Exception e) {e.printStackTrace();}}}).start();}
}
结果展示Wed Nov 07 14:42:18 CST 2018Thread[Thread-1,5,main]
Wed Nov 07 14:42:18 CST 2018Thread[Thread-0,5,main]
Wed Nov 07 14:42:19 CST 2018Thread[Thread-1,5,main]
Wed Nov 07 14:42:19 CST 2018Thread[Thread-0,5,main]
Exception in thread Thread-0 java.lang.OutOfMemoryError: Java heap space
at com.gosaint.util.JvmThread.lambda$main$0(JvmThread.java:21)
at com.gosaint.util.JvmThread$$Lambda$1/521645586.run(Unknown Source)
at java.lang.Thread.run(Thread.java:748)
Wed Nov 07 14:42:20 CST 2018Thread[Thread-1,5,main]
Wed Nov 07 14:42:21 CST 2018Thread[Thread-1,5,main]
Wed Nov 07 14:42:22 CST 2018Thread[Thread-1,5,main]
JVM启动参数设置上图是JVM堆空间的变化。我们仔细观察一下在14:42:05~14:42:25之间曲线变化你会发现使用堆的数量突然间急剧下滑这代表这一点当一个线程抛出OOM异常后它所占据的内存资源会全部被释放掉从而不会影响其他线程的运行讲到这里大家应该懂了此题的答案为一个线程溢出后进程里的其他线程还能照常运行。注意了这个例子我只演示了堆溢出的情况。如果是栈溢出结论也是一样的大家可自行通过代码测试。总结其实发生OOM的线程一般情况下会死亡也就是会被终结掉该线程持有的对象占用的heap都会被gc了释放内存。因为发生OOM之前要进行gc就算其他线程能够正常工作也会因为频繁gc产生较大的影响。近期热文 面试珍藏最常见的200多道Java面试题被一个熟悉的面试题问懵了String...面试官如何实现幂等性校验【END】关注下方二维码订阅更多精彩内容朕已阅