[问题] mutex是class成员的相关疑问

楼主: hn12404988 (Willy)   2016-08-18 23:01:33
开发平台(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有用
作者: bluesoul (忙死你老爸)   2016-08-18 23:44:00
1,2,3皆正确,通常3不会这样用就是
作者: Caesar08 (Caesar)   2016-08-18 23:49:00
1,2,3皆正确,但mutex配合static应该不是正确解答
作者: ilikekotomi (Young)   2016-08-18 23:50:00
2比较好用 3的话A这个class就全部共用同个mutex了
作者: bluesoul (忙死你老爸)   2016-08-19 00:05:00
除非你要保护的也是static member
作者: shadow0326 (非议)   2016-08-19 10:48:00
继续用不同instance并且拔掉mutex 选我正解(x
楼主: hn12404988 (Willy)   2016-08-19 10:48:00
知道了,谢谢各位回答

Links booklink

Contact Us: admin [ a t ] ucptt.com