use*_*348 2 java multithreading memory-leaks
我正在使用此代码来创建线程.
while ((strLine = br.readLine()) != null) {
r = new runnable(strLine);
new Thread(r).start();
x++;
Thread.sleep(100);
}
Run Code Online (Sandbox Code Playgroud)
如何控制在任何时间点运行的最大线程数?此代码存在使用内存不断上升(内存泄漏)的问题有更好的方法吗?我尝试使用调度程序,但没有帮助.
dle*_*lev 10
您可以使用an ExecutorService来创建受约束的线程池.
ExecutorService executor = Executors.newFixedThreadPool(10);
Run Code Online (Sandbox Code Playgroud)
将创建一个包含10个可用线程的池.然后你可以打电话
executor.submit(new Runnable() { ... })
Run Code Online (Sandbox Code Playgroud)
对于每个工作单元.
编辑:我应该注意,此工具仅适用于Java 1.5及更高版本.
| 归档时间: |
|
| 查看次数: |
1396 次 |
| 最近记录: |