0

我正在考虑使用静态方法,其中静态方法的输入将是唯一用于获取该方法的返回值的项目。我的应用程序将使用多个线程。我的问题是:我是否需要为该方法同步/使用锁(或确保所使用的变量是 volatile/atomic long 等),或者因为该方法是静态的并且我的方法仅使用该方法的输入来获取输出(并且不访问任何其他对象)。

4

2 回答 2

7

由于static和线程安全是正交的概念,一般的答案是它取决于代码

于 2013-11-03T20:06:07.627 回答
-1

仅存在一份static变量/对象的副本。重要的是您的方法在什么基础上起作用。

假设您的static方法修改了 aVector那么就不需要同步。如果它正在修改,ArrayList那么您需要同步。
如果它是自定义类的对象,则需要同步。

您可能想阅读更多关于线程安全的内容 =)

于 2013-11-03T20:06:32.443 回答