在多线程程序中使用 Executer 服务
Posted
技术标签:
【中文标题】在多线程程序中使用 Executer 服务【英文标题】:Using Executer service in multithreaded program 【发布时间】: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);
【问题讨论】:
问题太抽象,没有代码。 【参考方案1】:根据您的代码,我了解到,您正在从数据库中检索结果并将每个重新编码分配给一个线程,对吗?
在这种情况下,如果您获得 10 条记录,您将创建 10 个线程,但从长远来看,如果您获得 1000 条记录,您可以创建 1000 个线程。这将使您的应用程序变慢。
我的解决方案是使用像 this 这样的线程池。
【讨论】:
以上是关于在多线程程序中使用 Executer 服务的主要内容,如果未能解决你的问题,请参考以下文章