所以我使用的是Spring MVC,在我的控制器中我调用了几个Utility类。我在这些实用程序类中使用的集合是否需要同步?同样,当每个用户访问控制器中的我的网页时,会为每个用户生成多个线程,这意味着我需要确保线程安全吗?
答案 0 :(得分:2)
每个请求都将由servlet容器(来自线程池)分配的某个任意线程处理,因此多个请求将意味着控制器的多个并发执行。用户和线程之间没有直接关联,只有请求和线程,但如果你有多个用户,那么你通常会有并发请求,因此有多个线程。
鉴于控制器应该是线程安全的,您需要确保控制器使用的实用程序类和集合可以通过设计进行线程安全(例如,如果您确保控制器请求或可能的会话范围)不能同时提供相同的会话)或使用锁定共享资源。
答案 1 :(得分:0)
一般来说,你应该很好,但这是一篇非常好的文章,讨论了春季网络应用程序中的线程安全性,Thread safe controllers in Spring MVC.