【问题标题】:Using Executer service in multithreaded program在多线程程序中使用 Executer 服务
【发布时间】:2018-04-18 15:01:55
【问题描述】:

我正在使用执行器服务来使用多线程。我有大量的任务。当我使用executer.submit() 逐一提交这些任务时,堆空间会逐渐增加并且慢慢地,java 进程会变慢。我应该如何解决这个问题?

例如:获取所有数据后

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

【问题讨论】:

  • 问题太抽象,没有代码。

标签: java multithreading


【解决方案1】:

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

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

我的解决方案是使用像 this 这样的线程池。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-14
    • 2013-05-08
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-17
    • 1970-01-01
    相关资源
    最近更新 更多