2012-04-10 118 views
0

在Struts2中,每个请求都会创建操作对象。所以这里没有线程。它完全线程安全。 但它是如何提供良好的性能。这里每个对象都在一个堆栈中工作。 (但是线程会创建多个栈来执行)Struts2如何在没有线程的情况下获得性能?

它如何处理多线程请求而不使用线程?

回答

2

总之,如果你知道S2的工作方式,你会知道为什么这样设计。

在S2中,您的动作类还可以像Model对象一样工作,如将数据从UI传输到Bean以及从Bean传递到UI,这就是决定为每个请求创建Action实例的新副本的原因之一。

关于性能,如果我正确地为每个请求创建线程,比框架必须照顾同步数据,以便它应该是线程安全的,真的是一个很大的开销,这将不会提高整体性能。

S2操作既不是servlet也不是控制器。我相信你会让S2筛选器和S2 Action类感到困惑,并且最后每个请求都有自己的请求作用域S2操作的实例。

相关问题