作者hn12404988 (Willy)
看板C_and_CPP
標題[問題] mutex是class成員的相關疑問
時間Thu Aug 18 23:01:33 2016
開發平台(Platform): linux
額外使用到的函數庫(Library Used): No
問題(Question):
請問如果mutex宣告在class(A)裡的一個private變數
然後裡面一個member function(fn)會mutex.lock
然後int main中宣告兩個A的物件,例如a1, a2
這時候開兩個thread出去,假設p1, p2
p1會使用到a1, p2會使用到a2,兩個thread都會使用到fn這個function
請問以下我假設的是否都正確?
1. 那個mutex等同沒用,因為是兩個mutex分別被兩個thread使用
2. 如果p1, p2都使用a1,則mutex有用
3. 如果mutex是宣告static variable in class A,則p1使用a1和p2使用a2
這情況mutex有用
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.16.181
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1471532496.A.470.html
推 bluesoul: 1,2,3皆正確,通常3不會這樣用就是 08/18 23:44
→ Caesar08: 1,2,3皆正確,但mutex配合static應該不是正確解答 08/18 23:49
→ ilikekotomi: 2比較好用 3的話A這個class就全部共用同個mutex了 08/18 23:50
推 bluesoul: 除非你要保護的也是static member 08/19 00:05
→ shadow0326: 繼續用不同instance並且拔掉mutex 選我正解(x 08/19 10:48
→ hn12404988: 知道了,謝謝各位回答 08/19 10:48