线程安全与类和访问器

时间:2012-01-27 13:06:13

标签: multithreading winapi thread-safety

好的,我有三个课程,ClassOneClassTwoClassThree

ClassOneMain主题中运行,ClassTwo在主题ThreadTwo中运行,ClassThreeThreadThree中运行。<登记/> 在ClassTwoClassThree中,我拨打ClassOne,反之亦然。

    ClassTwo::SomeMethod(){
    int l_SomeVar = m_ClassOnePointer->SomeAccessorMethod() // return m_SomeVariable
    int l_SomeVar = m_ClassOnePointer->SomeConstAccessor()  // SomeConstAccessor() const;
    int l_SomeVar = m_ClassOnePointer->m_SomeVariable;      // Just a standard public int (not const, static, or volatile).

    m_ClassOnePointer->m_SetSomeVariable(30);
    m_ClassOnePointer->m_SomeVariable = 30;

目前我使用的是访问器和常量访问器,但我不知道它是否可以安全地进行线程化,如果不是没有锁定我将如何安全地执行此操作。

1 个答案:

答案 0 :(得分:0)

不,它不是线程安全的。至于没有锁的任意类型的getter - 我有nuthin .. const没有帮助 - 只是因为getter声明它不会改变成员变量并不意味着其他一些线程不能改变它们。其他线程可能会调用setter,或者ClassOne有一个内部线程正在更改它们。