2

所以我使用Spring MVC,並在我的控制器中調用了幾個Utility類。我在這些實用類中使用的集合是否需要同步?同樣,當每個用戶在控制器中訪問我的網頁時,是否會產生多個線程,這意味着我需要確保線程安全?線程安全控制器和實用程序類?

回答

2

每個請求都將被由servlet容器分配的一些任意的線程來處理(從一個線程池),因此多個請求將意味着多個併發執行的控制器。用戶和線程之間沒有直接的關係,只是請求和線程,但是如果你有多個用戶,那麼你通常會有併發請求,並且有多個線程。

鑑於控制器應該是線程安全的,您將需要確保控制器使用的實用程序類和集合是線程安全的,無論是通過設計(例如,如果確保它們或控制器請求或可能會話範圍同一會話不能同時進行)或通過使用共享資源進行鎖定。

0

一般來說,你應該是不錯的,但這裏是一個很好的文章,大約線程安全的Spring Web應用程序會談,Thread safe controllers in Spring MVC.

+0

偉大的文章,偉大的概述線程和控制器。 – 2010-06-24 18:52:45