返回一个简单的整数成员变量时的线程安全性

时间:2011-01-28 01:13:06

标签: c# .net multithreading locking thread-safety

在下面的C#代码片段中,GetID()线程安全吗?

public class SharedData
{
    protected int _nID = 0;
    public int GetID()
    {
        return nID;
    }
}

提前感谢任何回复!!

3 个答案:

答案 0 :(得分:3)

这取决于“线程安全”的含义。例如,如果通过“线程安全”,则表示“将保证在所有线程上观察到对此变量的所有写入都按照一致的顺序发生”,那么不,这根本不是“线程安全的”。如果你的意思是“测试和这个变量的集合保证给出与单线程数据依赖规则一致的结果”那么不,那根本就不是“线程安全的”。

让我们仔细定义“线程安全”对您来说意味着什么,并向我们展示所有编写者,以及所有与这些读者和作者有数据依赖关系的代码,然后我们可以给您一个有意义的意见。在这个问题中,甚至没有足够的信息来开始有意义地回答这个问题。

答案 1 :(得分:2)

阅读是线程安全的。如果您打算写信nID,那么这就成了一个问题。

答案 2 :(得分:0)

它不会修改任何东西。它如何是线程安全的还是线程安全的?