由於很多原因,在servlet中使用線程並不是好習慣。在Servlet中使用java.util.Timer是否安全?
java.util.Timer
看起來像圍繞一個線程的包裝。那麼,使用它也不安全嗎? 如果是這樣,在servlet中安排任務的最安全方法是什麼?
由於很多原因,在servlet中使用線程並不是好習慣。在Servlet中使用java.util.Timer是否安全?
java.util.Timer
看起來像圍繞一個線程的包裝。那麼,使用它也不安全嗎? 如果是這樣,在servlet中安排任務的最安全方法是什麼?
是的。這非常安全。 servlet容器將爲線程尋找HTTP請求,但是你可以自己產生adoringal線程,無論它們的生命週期是否限於請求的生命週期或更長的時間。
例如一個常見的模式是產生一個長時間運行的處理線程。 Servlet請求會將工作項放入隊列(用於帶外處理),而長時間運行的處理線程將處理這些工作項。
Here's an article from OReilly詳細說明servlet和EJB中的計時器使用情況。
要獲得最佳答案,請詳細說明您確實需要它。 – BalusC 2009-12-25 13:40:17
我真的不覺得這很重要,是嗎? – 2009-12-25 15:40:29
您當然可以安全地使用它,但最安全(最好)的方式取決於實際的功能要求。詢問這個特定問題的人通常並不完全知道servlet的生命週期,當你玩線程時可能會導致問題。這是問題的根源,因爲它「不是一個好的做法」(因此實際上並不是這樣:))。 – BalusC 2009-12-25 16:12:52