2012-04-10 113 views
0

在Struts2中,每個請求都會創建操作對象。所以這裏沒有線程。它完全線程安全。 但它是如何提供良好的性能。這裏每個對象都在一個堆棧中工作。 (但是線程會創建多個棧來執行)Struts2如何在沒有線程的情況下獲得性能?

它如何處理多線程請求而不使用線程?

回答

2

總之,如果你知道S2的工作方式,你會知道爲什麼這樣設計。

在S2中,您的動作類還可以像Model對象一樣工作,如將數據從UI傳輸到Bean以及從Bean傳遞到UI,這就是決定爲每個請求創建Action實例的新副本的原因之一。

關於性能,如果我正確地爲每個請求創建線程,比框架必須照顧同步數據,以便它應該是線程安全的,真的是一個很大的開銷,這將不會提高整體性能。

S2操作既不是servlet也不是控制器。我相信你會讓S2篩選器和S2 Action類感到困惑,並且最後每個請求都有自己的請求作用域S2操作的實例。

相關問題