Java多线程控制

Java多线程控制,java,multithreading,memory-leaks,Java,Multithreading,Memory Leaks,我正在使用此代码创建线程 while ((strLine = br.readLine()) != null) { r = new runnable(strLine); new Thread(r).start(); x++; Thread.sleep(100); } 如何控制在任何时间点运行的最大线程数? 此代码存在内存使用量不断增加的问题(内存

我正在使用此代码创建线程

      while ((strLine = br.readLine()) != null) {
                r = new runnable(strLine);
                new Thread(r).start();
                x++;
                Thread.sleep(100);
      }
如何控制在任何时间点运行的最大线程数? 此代码存在内存使用量不断增加的问题(内存泄漏)有更好的方法吗? 我尝试使用调度程序,但没有帮助。

您可以使用创建受约束的线程池

ExecutorService executor = Executors.newFixedThreadPool(10);
将创建一个包含10个可用线程的池。然后你可以打电话

executor.submit(new Runnable() { ... })
对于每个工作单元

编辑:我应该注意,此功能仅在Java 1.5及更高版本中可用