我在考慮使用靜態方法,其中輸入到靜態方法將是唯一的項目被用來獲得該方法的返回值。我的應用程序將使用多個線程。我的問題是:我是否需要爲方法同步/使用鎖(或者確保所使用的變量是volatile/atomic long等),或者由於該方法是靜態的,我的方法只使用方法中的輸入獲取輸出(並且不訪問任何其他對象)。是在java線程安全的靜態方法
回答
由於static
和線程安全是正交的概念,一般的答案是它取決於代碼。
只存在static
變量/對象的一個副本。重要的是你的方法運作。
假設您的static
方法修改了Vector
,則不需要同步。如果它正在修改ArrayList
那麼你需要同步。
如果它是自定義類的對象,那麼就需要同步。
你可能想了解更多關於線程安全=)
請重新說明'由於方法是靜態的,它們只能對靜態值進行操作。「# –
@SotiriosDelimanolis在這裏預期什麼詞? =) –
@LittleChild:實際解釋正確的東西的單詞;)使用靜態方法操作非靜態屬性很好,爲什麼不可能呢? 'static void test(MyObject someObject){someObject.someMember = 5; }';) –
- 1. Java - 靜態方法的線程安全
- 2. Java靜態方法和線程安全
- 3. 是靜態方法線程安全的
- 4. 是靜態方法線程安全
- 5. 靜態方法的線程安全
- 6. 靜態方法和線程安全
- 7. 靜態方法和線程安全
- 8. SqlServer類靜態方法 - 線程安全
- 9. 靜態方法和靜態塊之間的線程安全
- 10. 的Java:靜態工廠方法和線程安全
- 11. 是我的靜態util的方法線程安全
- 12. java - 靜態方法隱式線程安全?
- 13. 是沒有任何參數線程安全的靜態方法?
- 14. Java靜態和線程安全
- 15. 靜態類的靜態方法,這種方法線程安全嗎?
- 16. Java方法線程安全
- 17. 這是靜態方法線程安全或需要同步
- 18. 線程安全對象 - 是否靜態?
- 19. 靜態委託是否線程安全?
- 20. 是靜態類線程安全
- 21. 確保線程安全在靜態方法在C#
- 22. 傳遞給靜態方法的參數中的線程安全
- 23. Asp.net C#靜態方法線程安全的錯誤處理
- 24. 如何確保實用靜態方法的線程安全?
- 25. 可變參數線程安全的靜態方法?
- 26. Struts 2 Action訪問靜態方法時的線程安全性
- 27. 靜態方法和線程安全的局部變量
- 28. 從不同線程的靜態類訪問靜態方法。它安全嗎?
- 29. 正在使用foreach而不是HttpContext.Current內的靜態方法線程安全嗎?
- 30. Java:我的方法線程安全嗎?
如果全部由'static'調用的方法是線程安全的,那麼它是。否則它不是。 –
這個問題是一個很好的候選人*關閉* :) – Sage
你需要了解什麼線程安全手段。 –