2012-02-01 83 views
0

我正在閱讀日誌文件並在日誌文件中發生任何問題時發送郵件。這兩個進程正在同時發生。但是我看到的是行被正確讀取,但有時郵件被跳過,所以我把郵件的一部分放在一個線程中。現在這不是一個獨立的程序,它運行在一個容器中,所以當我停止tomcat服務器時,會出現內存泄漏問題,因爲它無法停止線程我發送mail.任何人都可以幫助..這就是我正在做的事情。無法同時讀取文件和發送郵件

   --Read Log file-- 
         | 
         | 

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

回答

1

答案是你使用interrupt()來停止線程。 This本文介紹一些背景來停止線程和建議的替代方案,並討論爲什麼中斷()就是答案

總之,你可以使用下面你發送郵件後:

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

我已經試過這個..它不起作用 – Rookie 2012-02-01 10:23:09