2012-01-27 86 views
2

好吧,我有三個類,ClassOne,ClassTwoClassThree線程安全與類訪問器

ClassOne是跑在Main線程,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; 

目前我使用的存取和const存取,但我不知道,如果它的安全的線程,如果不是我將如何去安全地這樣做,沒有鎖。

回答

0

不,它不是線程安全的。至於沒有鎖的任意類型的getters - 我有nuthin .. const不起作用 - 僅僅因爲getter聲明它不會改變成員變量,並不意味着其他線程不能改變它們。其他線程可能會調用setter,或者也許ClassOne有一個內部線程正在改變它們。

+0

我沒有使用const來處理線程安全,它只是一些訪問器所必需的。 – 2012-01-28 15:55:07

+0

而我不能創建一個內部線程,我只有6個線程的限制。 – 2012-01-28 16:28:57