它说,由于struts 2操作bean初始化了每个请求,所以它们是线程安全的。但是如果几个线程在同一个http请求中使用这个bean呢?所以它不是真正的线程安全的,除非我们用线程安全的方式编写bean?
下面是struts 2的文档,在比较struts 1和struts2时,

Struts 2 Action objects are instantiated for each request, so there are no thread-safety issues

struts 2 documentation
我的想法是,即使struts 2操作对象是为每个请求实例化的,它仍然不是线程安全的,对吧?

最佳答案

在我看来,web应用程序是使用servlet技术设计的。Struts2至少支持Servlet规范2.4。web服务器使用http协议与客户机通信,并管理线程。而且您知道每个容器的请求创建的线程不超过一个。除了BackgroundProcess之外,框架不创建任何线程,而且看起来它是以线程安全的方式进行的。您不负责管理操作bean,框架是为您做的。所以,如果它声称它是线程安全的,你可以信任它,如果你有相反的证据,可以妥协。根据这些信息,您可以得出结论,您可以使用线程安全的托管bean。

09-16 05:43