作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有人可以解释为什么线程示例总是使一个对象(特别是一个成员变量)成为静态的,如果它要被多个线程访问吗?
我的问题是,将成员变量设为静态意味着它将在该类的所有其他实例之间共享。有时我发现我希望一个类中的多个线程“接触”成员变量,但同时允许每个对象都有自己的副本。
执行我提到的内容的答案是否只是替换:
最佳答案
没有什么要求成员变量对于线程是静态的。
大多数示例使用静态变量,特别是因为它们试图展示如何在两个单独的线程之间同步数据。如果你想这样做,你需要有一个两个线程都可以访问的值。静态变量是最简单的选择,因为它们随处可见。
您可以轻松地将对类的引用传递到您的线程中,并让该线程和您的主线程共享一个非静态成员变量。但是,您将需要提供一种良好的锁定/同步机制,因为您将有两个线程共享一个类的一个实例。
关于C#:关于成员变量线程安全的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1380588/
我是一名优秀的程序员,十分优秀!