Java多线程控制

时间:2011-05-21 05:06:25

标签: java multithreading memory-leaks

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

      while ((strLine = br.readLine()) != null) {
                r = new runnable(strLine);
                new Thread(r).start();
                x++;
                Thread.sleep(100);
      }

如何控制在任何时间点运行的最大线程数? 此代码存在使用内存不断上升(内存泄漏)的问题有更好的方法吗? 我尝试使用调度程序,但没有帮助。

1 个答案:

答案 0 :(得分:10)

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

ExecutorService executor = Executors.newFixedThreadPool(10);

将创建一个包含10个可用线程的池。然后你可以打电话

executor.submit(new Runnable() { ... })

每个工作单元。

编辑:我应该注意,此工具仅适用于Java 1.5及更高版本。