在多线程程序中使用Executer服务

时间:2017-11-06 12:31:18

标签: java multithreading

我正在使用执行程序服务来使用多线程。我有很多任务。当我使用executer.submit()一个接一个地提交这些任务时,堆空间会逐渐增加,而且java进程会慢慢地变慢。我该如何处理这个问题?

例如:获取所有数据后

while(resultset.hasnext())
{
I am thread objects here //
RunnableObject o = new RunnableObject(data);
executer.submit(o);
}

1 个答案:

答案 0 :(得分:0)

根据您的代码,我了解到,您正在从数据库中检索结果并将每个重新编码分配给一个线程,对吗?

在这种情况下,如果你得到10条记录,你将创建10个线程,但从长远来看,如果你得到1000条记录,你可以创建1000条线程。这会使你的应用程序变慢。

我的解决方案是使用this等线程池。

相关问题