作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
在我的应用程序中,我有一个同时从多个线程调用的静态方法。我的数据有混淆的危险吗?
在我的第一次尝试中,该方法不是静态的,我正在创建该类的多个实例。在那种情况下,我的数据以某种方式混淆了。我不确定这是怎么发生的,因为它只是有时发生。我还在调试。但是现在该方法是静态的,到目前为止我没有任何问题。也许这只是运气。我不确定。
最佳答案
在方法内部声明的变量(“捕获”变量可能除外)是隔离的,因此您不会遇到任何固有问题;但是,如果您的静态方法访问任何共享状态,则所有赌注均无效。
共享状态的例子是:
如果你有共享状态,你必须:
whatever.SomeData
重复地,您将 whatever.SomeData
一次 读取到局部变量中,然后只使用该变量 - 请注意,这仅对不可变状态有帮助!)关于C# : What if a static method is called from multiple threads?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3037637/
我是一名优秀的程序员,十分优秀!