關於Spring的Controller及Struts的Action的多線程的注意

來源:互聯網
上載者:User

struts是安全執行緒,並不是指多線程,而是指單態,當多個使用者訪問一個請求的時候,伺服器記憶體中只有一個與之對應的action類對象,execute方法加上了同步關鍵字,如果你在action裡加上一個全域變數,那麼,多個客戶訪問的時候,這個變數是共有的,即一個客戶修改了他,下一個客戶獲得的變數是修改後的,你可以寫個demo來測試,至於多線程只是伺服器在相應用戶端請求時對於session的處理,並不是指struts   action

 

Spring的MVC model類似於Struts。在多線程服務物件這點上,Spring的Controller類似於Struts Action,只有一個執行個體處理所有客戶請求。

 

以上兩點在今天才知道,慚愧啊。

如果在一個struts的Action或spring的Controller中使用了一個全域變數(類成員變數的話),當不同使用者訪問同一個action時,就會發生錯誤! 因為如上所述,伺服器記憶體只有一個action類對象。恐怖啊!

 

唉,之前以為多線程的話就會在伺服器為每個線程建立一個action對象呢~!!!!  狂暈

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.