2011-05-12 77 views
-1

如果我遇到這種情況,我將不得不讓我的Java程序同步中的每個方法都會影響我的代碼的性能?同步冒險

+0

你測試過了嗎? – developer 2011-05-12 09:23:50

+4

請嘗試先搜索答案。這個問題是非常通用的,可以通過互聯網免費提供的一般理論來回答,包括直接從Oracle提供。 – 2011-05-12 09:26:15

回答

6

是的,它會影響性能。

如果您的應用程序大多是單線程的,那麼影響會非常小,因爲無爭議的鎖獲取速度非常快(在HotSpot等現代JVM上)。

如果您的應用程序是多線程的多個線程同時訪問相同的對象,那麼影響會更大。

請注意,讓每個單一方法同步不會影響而不是保證您的代碼是線程安全的,您仍然可以輕鬆獲得競爭條件。

+4

+1更不用說死鎖的風險。 – WhiteFang34 2011-05-12 09:33:06