2012-03-27 92 views
0

如何在web服務中創建新線程?我需要該線程在Web服務的「主要」上啓動,而不是在服務器調用中啓動。Java WebService線程創建

我需要它作爲工作線程,所以服務器調用會發送消息到線程 - 工作要在BG中完成,並且不會阻塞服務器請求。

我不知道該怎麼做

回答

1

你需要創建一個ThreadPool,這是一個對象,你可以提交其將被該線程池的線程(S)上執行任務。

製作ThreadPool的最簡單方法是使用由Executors類創建的一個。

+0

這是不是從這個問題不清楚,但如果作者沒有創造它自己的實施和使用第三方WS棧,那麼我們這裏有問題:大多數的實現已經在使用線程池,並在池中的每個線程不斷重複使用。在這種情況下,我會考慮將新線程作爲不良做法。 – Osw 2012-03-27 19:05:19

1

您可以嘗試在您的主類中使用靜態初始化程序。

這裏我使用一個來創建一個計時器任務,它每隔一小時重新讀取我的屬性文件,但您幾乎可以使用它們進行任何操作,包括創建新線程。

static { 
    // Read my properties at start-up. 
    readProperties(); 
    // Start a new timer task to repeat every hour. 
    int rate = Debug? 60*1000 : 1*60*60*1000; 
    // Make a daemon scheduled thread to re-read properties. 
    new Timer("Read properties timer", true).schedule(new TimerTask(){ 
     public void run() { 
      readProperties(); 
     } 
    }, rate, rate); 
}