小编Kau*_*hik的帖子

java.lang.OutOfMemoryError:无法在Windows中创建新的本机线程..recreate

我在应用程序java.lang.OutOfMemoryError中遇到以下问题:无法创建新的本机线程

我在Windows 7 64bit中的开发环境和在Linux 64位中的部署环境。我无法在本地开发环境中重现该问题。我得到以下代码,当我在linux服务器中运行时,创建线程3993时出现了相同的错误。ulimit -u计数为4096。因此,我坚信不允许在此阈值附近的某个地方为进程/应用程序/用户创建新线程。

但是,我无法在Windows开发环境中重新创建该问题。我很好奇什么代码实际上会给我Windows中的线程阈值

public class ThreadLimitChecker
{ 
  public static void main(String[] args) 
  { 
    System.out.println("Hello World");
    int count = 0; 
    while (true) 
    {
      count++; 
      new Thread(new Runnable() 
      {
        public void run() 
        {
          try 
          {
            Thread.sleep(10000000); 
          }
          catch (InterruptedException e) {
            e.printStackTrace();
          }
        }
      }).start(); 
      System.out.println("Thread #:" + count); 
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

预期发生异常的线程号

java multithreading

2
推荐指数
1
解决办法
433
查看次数

标签 统计

java ×1

multithreading ×1