日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Struts 1 和 Struts 2 的线程安全

發(fā)布時(shí)間:2025/3/17 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Struts 1 和 Struts 2 的线程安全 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

??? 總的來說,Struts1 的 Action 是單例模式,因此開發(fā)者必須保證它是線程安全的或是同步的,因?yàn)镾truts 1中每個(gè)Action僅有一個(gè)實(shí)例來處理所有的請求。

?

??? 但是在用Struts 1開發(fā)時(shí)并沒有考慮到線程安全問題,這是因?yàn)槲覀冊贏ction中使用的基本都是局部變量,而“局部變量是線程安全的。因?yàn)槊繄?zhí)行一個(gè)方法,都會(huì)在獨(dú)立的 空間創(chuàng)建局部變量,它不是共享的資源。局部變量包括方法的參數(shù)變量”(忘了引自哪了)。在Struts 1中,所有的變量都是定義在Action中我們要執(zhí)行的方法里的(Action中的execute方法或DispatchAction中指定要執(zhí)行的方 法),我們用于封裝客戶端請求參數(shù)的ActionForm,也是作為一個(gè)參數(shù)傳入,也屬于局部變量,因此,不存在線程安全問題。

?

??? Struts 2 的 Action 對象為每一個(gè)請求產(chǎn)生一個(gè)實(shí)例,因此,雖然在Action中定義了很多全局變量,也不存在線程安全問題。


??? Struts 2框架在處理每一個(gè)用戶請求的時(shí)候,都建立一個(gè)單獨(dú)的線程進(jìn)行處理,值棧ValueStack也是伴隨著局部線程而存在的。在該線程存在過程中,可以隨意訪問值棧,這就保證了值棧的安全性。

?

??? 在Struts 2中,ActionContext是一個(gè)局部線程,這就意味著每個(gè)線程中的ActionContext內(nèi)容都是唯一的。所以開發(fā)者不用擔(dān)心Action的線程安全。

總結(jié)

以上是生活随笔為你收集整理的Struts 1 和 Struts 2 的线程安全的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。