單例與多例 無狀態與有狀態

2021-08-27 16:54:51 字數 456 閱讀 4436

單例:某個類系統範圍內只有乙個例項

多例:某個類在系統範圍內同時有多個例項

無狀態類:類中沒有狀態資訊,一般是無成員變數或成員變數的值是不變的。 

有狀態類:類中有狀態資訊,一般表現成員變數的值可變,在某一時該被呼叫而改變狀態,之後再呼叫時獲取其正確的狀態。

有狀態類的例項 ,一般是多例的,用於儲存多個相同型別的不同狀態值。因為只有乙個例項,單執行緒重複呼叫情況下可能覆蓋例項中之前的成員變數值、多執行緒下一次呼叫也可能覆蓋例項中之前的成員變數值,造成狀態丟失,就需要多個例項來儲存不同的狀態。

無狀態類的例項,一般是單例的,因為沒有狀態,所以單執行緒下重複呼叫或多執行緒下呼叫對例項沒有影響。

有狀態的單例:這種情況是為了全域性共享狀態,狀態的修改需要加鎖,保證執行緒的安全性。

單執行緒下有狀態的單例:執行緒是順序執行的,在同一時該只存在一種狀態,則可以使用單例,一般的使用方式是threadlocal.

Web有狀態無狀態分析

參考 http協議和web應用有狀態和無狀態 http協議 無連線 無狀態 1 ip是無狀態的,只負責將乙個ip包傳送到指定ip位址,不考慮前後傳輸的聯絡。2 tcp是有狀態的,它是可靠的傳輸,面向連線,三次握手保證可靠連線。3 udp是無狀態的,只是在ip上加了個port,不是可靠傳輸,面向無連線...

local,remote區別,有狀態與無狀態區別

無狀態bean不會 專門 儲存客戶端的狀態 需要強調 專門 是因為無狀態會話bean也會有成員變數,有成員變數就可以儲存狀態,但它不會專門為特定的客戶端儲存狀態。有狀態會話bean會儲存客戶端的狀態 對於有狀態會話bean來說,只要有客戶端傳送對有狀態會話bean的訪問,伺服器都會建立乙個會話bea...

無狀態伺服器與有狀態伺服器

定義 是指兩個來自相同發起者的請求在伺服器端是否具備上下文關係,具有上下文關係則為有狀態伺服器,沒有則為無狀態伺服器 狀態化請求 那麼伺服器端一般都要儲存請求的相關資訊,每個請求可以預設地使用以前的請求資訊,傳送的資訊量較少 無狀態請求 伺服器端所能夠處理的過程必須全部來自於請求所攜帶的資訊,以及其...