2013-10-14 66 views
2

它是一個糟糕的選擇在web應用中使用靜態類?靜態類在Web應用程序

比方說,一個是使用角色驗證一個靜態類,如果用戶在角色X。我認爲當有很多用戶時,它可能會排隊使用這個類。

有什麼建議嗎?

+3

什麼會排隊?據我所知,多線程可以同時訪問靜態類或方法*,意識到在CPU上同時沒有任何事情發生。你是否嘗試過實例化和靜態方法?你想解決什麼問題?也許最重要的是,爲什麼不使用或擴展內置的角色提供者? – Yuck

回答

3

靜態類是一個Web應用程序中就好了。請記住,所有線程都可以同時訪問該類,因此您需要考慮操作的線程安全性。在你的榜樣,角色的驗證,這將是非常合理的,因爲當應用程序啓動並剛剛從執行過程中讀取,你可以加載的角色。這會讓你的類是線程安全的。

我用一個靜態類緩存如基於關閉用戶名在MVC應用程序的用戶ID信息。現在,在處理緩存時,您需要擔心線程安全問題,因爲您有時候都在閱讀和寫作。但你得到的照片。 Web應用程序中的靜態信息是100%可以。

+2

+1對於線程安全來說,我認爲這是使用靜態類和非靜態類和方法唯一可能出現的問題。 – Yuck

0

除非有在靜態類或某事的共享資源,並實施鎖定,使其線程安全的 - 你不會有任何排隊的問題,同時從多個用戶/請求/線程同時訪問它。

相關問題