虚拟机栈和本地方法栈OOM测试2

来源:互联网 发布:胭脂雪网络歌曲 编辑:程序博客网 时间:2024/06/09 21:46

package com.sino.jvmdemo;

/**
 * function:创建线程导致内存溢出异常 虚拟机栈和本地方法异常
 * VM Args:-Xss2M
 * @author ylchou@qq.com
 *
 */
public class JavaVMStackOOM {
 private void dontStop(){
  while(true){
   
  }
 }
 
 public void stackLeakByThread(){
  while(true){
   Thread thread = new Thread(new Runnable(){
    @Override
    public void run() {
     dontStop();
    }
   });
   
   thread.start();
  }
 }
 
 public static void main(String[] args) {
  JavaVMStackOOM oom = new JavaVMStackOOM();
  oom.stackLeakByThread();
 }
}

PS:运行上面这段代码,要先保存当前的工作,由于在windows平台的虚拟机中,Java的线程是映射到OS的内核线程上的,所以上述代码执行时有较大的风险,可能导致OS假死。我运行时OS就死啦。

原创粉丝点击