2014-02-10 13 views
0

這是一個全局變量:mutexlocker應該被添加到兩個函數,他們試圖從不同的線程訪問和寫入相同的變量?

extern int i; 

兩個線程一個 & 嘗試訪問和寫入變量,在螺紋一個功能,就像下面:

void funA(int *i) 
{ 
    QMutexLocker(&m_mutex); //to lock the process 
    *i += 5; 
} 

和螺紋處理功能:

void funB(int *i) 
{ 
    QMutexLocker(&m_mutex); //**should I add this?** 
    *i -= 2; 
} 

有兩個線程到店只有一個變量,我要補充QMutexLocker成兩個函數或只加一個?我可以添加一個嗎?

+0

哪裏m_mutex定義?對於所有對i的訪問,它必須是相同的實例。我也會避免全局變量,並使互斥變量和變量成爲某個類的成員。 –

回答

1

是的,你應該在你的這兩個功能使用QMutexLocker

相關問題