如何在web服務中創建新線程?我需要該線程在Web服務的「主要」上啓動,而不是在服務器調用中啓動。Java WebService線程創建
我需要它作爲工作線程,所以服務器調用會發送消息到線程 - 工作要在BG中完成,並且不會阻塞服務器請求。
我不知道該怎麼做
如何在web服務中創建新線程?我需要該線程在Web服務的「主要」上啓動,而不是在服務器調用中啓動。Java WebService線程創建
我需要它作爲工作線程,所以服務器調用會發送消息到線程 - 工作要在BG中完成,並且不會阻塞服務器請求。
我不知道該怎麼做
你需要創建一個ThreadPool
,這是一個對象,你可以提交其將被該線程池的線程(S)上執行任務。
製作ThreadPool的最簡單方法是使用由Executors類創建的一個。
您可以嘗試在您的主類中使用靜態初始化程序。
這裏我使用一個來創建一個計時器任務,它每隔一小時重新讀取我的屬性文件,但您幾乎可以使用它們進行任何操作,包括創建新線程。
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);
}
這是不是從這個問題不清楚,但如果作者沒有創造它自己的實施和使用第三方WS棧,那麼我們這裏有問題:大多數的實現已經在使用線程池,並在池中的每個線程不斷重複使用。在這種情況下,我會考慮將新線程作爲不良做法。 – Osw 2012-03-27 19:05:19