我正在使用此代码创建线程。
while ((strLine = br.readLine()) != null) {
r = new runnable(strLine);
new Thread(r).start();
x++;
Thread.sleep(100);
}
如何控制在任何时间点运行的最大线程数? 此代码存在使用内存不断上升(内存泄漏)的问题有更好的方法吗? 我尝试使用调度程序,但没有帮助。
答案 0 :(得分:10)
您可以使用ExecutorService
创建受约束的线程池。
ExecutorService executor = Executors.newFixedThreadPool(10);
将创建一个包含10个可用线程的池。然后你可以打电话
executor.submit(new Runnable() { ... })
每个工作单元。
编辑:我应该注意,此工具仅适用于Java 1.5及更高版本。