无法同时读取文件和发送邮件

时间:2012-02-01 09:37:29

标签: java multithreading memory-leaks

我正在阅读日志文件并发送邮件,如果日志文件中出现任何问题。这些过程同时发生。但我看到的是行正确读取但有时邮件被跳过,所以我把邮件部分在一个线程。现在这不是一个独立的程序,它是在一个容器中运行,所以当我停止tomcat服务器时,出现内存泄漏问题,因为它无法阻止我发送邮件的线程。任何人帮助..这就是我在做的事。

             --Read Log file--
                        |
                        |

new Thread(new Runnable() {
  @Override
  public void run() {
    SendMail mail = new SendMail();
    String mailDetails="";
    mailDetails = loginfo;
    loginfo = " ";
    mail.sendNotification()
}

1 个答案:

答案 0 :(得分:1)

答案是你使用interrupt()来停止一个线程。 This文章介绍了停止线程的一些背景和建议的替代方案,并讨论了为什么interrupt()是答案

简而言之,您可以在发送邮件后使用以下内容:

Thread thisThread = Thread.currentThread();
thisThread.interrupt();