2016-02-18 68 views
0

當程序啓動時,在後臺每分鐘自動調用一個方法而不使用線程。如何在不影響當前進程的情況下使用Java在後臺每分鐘調用方法?

class Abc 
{ 
    main() 
    { 
     do something...... 
    } 
} 
class xyz 
{ 
    public void show() 
    { 
     call every 1 minute in background 
     do something..... 
     with out affect main method 
    } 
} 
+3

的[在Java中實現一個計時器事件最簡單的方法]可能的複製(HTTP://計算器.com/questions/12641957/java中的最簡單的方法實現一個定時器事件) – shoover

回答

0

你不能只用1個線程同時做2件事。你必須創建另一個線程。

+0

這是可能的jsp servlet或不?如果servlet或jsp正在運行,並且在後臺執行一個servlet而不影響當前文件。 –

+0

Servlets正在像Tomcat這樣的容器中初始化。每次調用servlet方法時,容器都會在該服務的後臺創建一個新線程。我不明白你的意思是說它不影響當前文件。什麼文件? – MaxG

+0

意味着當a.jsp或a.java已經在瀏覽器上運行時,所以現在每5分鐘b.java文件在後臺運行而不會影響a.jsp或a.java。 a.jsp文件輸出顯示在瀏覽器上,5分鐘後b.java文件運行,但用戶端只顯示a.jsp文件輸出。任何Java文件或任何在後臺運行而不顯示用戶方的用戶方法某些任務可能會在後臺執行。有沒有可能使用jsp servlet? –

0

假設你需要調用show()從主每隔1分鐘無干擾的main()代碼

class Abc 
{ 
    main() 
    { 
     Thread mythread = new Thread() 
     { 
      xyz myClass = new xyz(); 
      public void run() 
      { 
       while(true) 
       { 
        myClass.show() // this will execute 
        thread.sleep(60000); // this will pause for a bit but wont affect your main code, add this in between try and catch to pause this thread alone withotu affecting main one for 1 min and it goes again and calls show() 
       } 
      } 
     } 
     do something......    
    } 
} 
class xyz 
{ 
    public void show() 
    { 
     // whatever you type here will now run every 1 min, without affecting your main code 
    } 
} 
相關問題