如何清除java中使用的线程的内存?

时间:2015-07-02 19:11:23

标签: java multithreading memory garbage-collection

我在java中有一个应用程序,它连接到数据库并编写一些报告。我想每天在特定的时间写这些报告。首先,我将从Windows服务器使用任务调度程序,但显然它在执行我的jar时遇到问题。所以我虽然可以在java中使用一个Thread并执行我的代码部分,就像我每天在特定时间说的那样生成报告。这意味着我必须让我的应用程序一直运行,它感觉不对,但这是我目前唯一的选择。

问题在于:

当我运行我的程序时,它等到有时间调用将创建我的报告的类,问题是起初java消耗的内存例如是11 000 KB,当它执行时报告部分内存达到近10 000 KB(我认为这是合理的,因为我连接到数据库并编写文件等),然后当它再次编写这些报告的时候,它将会得到120 000 KB,下一次130 000 KB,它不会更高,但我想知道一旦我执行了部分报告,是否有办法恢复到11 000 KB。 我读过有关调用垃圾收集但是它不起作用,也没有设置为null我的对象。 你们有没有想过为什么会这样?

谢谢!

1 个答案:

答案 0 :(得分:0)

我强烈建议使用石英。这是一个库,它允许您安排将在特定时间执行的作业,而无需在单独的线程中等待(在线程中)。没有理由发明一些发明的东西。 :) http://quartz-scheduler.org/