servlet,struts x執行緒安全解讀

2021-09-02 11:56:09 字數 548 閱讀 7979

執行緒安全:

如果**所在的程序中有多個執行緒同時執行,而這些執行緒可能會同時執行這段**。如果每次執行的結果和單執行緒執行的結果是一樣的,而且其他的變數的值也和預期的是一樣的,就是執行緒安全的。

servlet是多執行緒的,同時乙個servlet實現類只會有乙個例項物件,也就是說是單例,所以多個執行緒是可能會訪問同乙個servlet例項物件的。

執行緒安全問題都是由於全域性變數及靜態變數引起的。

一、servlet和struts1

通常情況下,系統只能生成servlet的單一例項之後,為每個使用者請求建立新的執行緒。如果很多請求同時到來,那麼多個執行緒可能會併發的訪問同乙個servlet物件。因此,必須小心同步丟欄位以及例項變數和其他共享資料的訪問,因為多個執行緒可能同時對同一資料進行訪問。所以,使用全域性變數會產生不安全的結果。struts1也是這種單例模式。

servlet和struts1都是單例項,多執行緒,在不加鎖的情況下盡量不要使用全域性變數帶來執行緒不安全的變數,只有請求區域性變數時執行緒安全。

二、struts2

struts2本身就是多例項,單執行緒,可以說本事就是執行緒安全的。

對於線線問題

以下是乙個大佬的總結 authorlcy註明出處,摘自 1 n條直線最多分平面問題 題目大致如 n條直線,最多可以把平面分為多少個區域。析 可能你以前就見過這題目,這充其量是一道初中的思考題。但乙個型別的題目還是從簡單的入手,才容易發現規律。當有n 1條直線時,平面最多被分成了f n 1 個區域。則...

交叉線和直通線

2010 1 24 21 25 49 問 copper cross over與copper straight through兩種電纜有什麼區別?這兩種銅質電纜,我就是搞不懂有什麼不同!還有serial dte和serial dce兩種線的區別又是什麼呢?這兩種線與題目上的兩種線的接頭是不是一樣的呢?...

OC OD 線或線與邏輯

一.什麼是oc od 集電極開路門 集電極開路 oc或源極開路od open drain是漏極開路輸出的意思,相當於集電極開路 open collector 輸出,即ttl中的集電極開路 oc 輸出。一般用於線或 線與,也有的用於電流驅動。open drain是對mos管而言,open collec...