從項目中談JAVA中static 方法在多線程環境下的運用

最近在做一個實時性比較高的系統,數據庫訪問很頻繁。在這個項目中數據庫訪問的大多數都被我做成了static 方法。(這樣做應該不是很好,沒辦法發揮dao模式的優勢,不過湊合用吧)因這個系統是多線程。static方法的運用需要注意,不能在servlet中使用成員變量,因爲如果你的servlet使用的是多線程模式,所有的servlet共享一個servlet實例,在多線程的情況下,會發生髒讀問題;主要不能對類成員的同步訪問。如果是方法的局部成員則是線程安全的。

總的說: 如果這個方法用的很頻繁,就把它定義爲static,需要注意的是線程間共享變量的同步。比如:線程不安全的數據結構 。

static的方法好處就是,在使用時速度快,不需要實例化對象就可以直接調用。在硬件有限,實時性要求比較高的情況下,應該提倡多用吧。

 

有空得了解下sun的java體系設計的思想,是static還是不是static,這是個問題!!

發佈了32 篇原創文章 · 獲贊 5 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章