在我的应用程序中,我有一个静态方法,该方法同时从多个线程中调用。我的数据有混淆的危险吗?
在我的第一次尝试中,该方法不是静态的,并且我正在创建该类的多个实例。在这种情况下,我的数据会以某种方式混淆。我不确定这是怎么发生的,因为它只是偶尔发生。我还在调试。
但是现在该方法是静态的,到目前为止我还没有问题。也许只是运气。我不确定
最佳答案
在方法内部声明的变量(“捕获的”变量可能异常(exception))是隔离的,因此您不会遇到任何固有的问题。但是,如果您的静态方法访问任何共享状态,则所有选择都将关闭。
共享状态的示例为:
如果您拥有共享状态,则必须执行以下任一操作:
whatever.SomeData
,您应将读入whatever.SomeData
,将读入一个局部变量,然后只使用变量-请注意,这仅对不可变状态有用!)