看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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