草庐IT

MutexLock

全部标签

c++ - 调用析构函数的顺序和要点

假设我有两个本地对象。函数返回时,是否保证哪个先出作用域?例如:我有这样一个类:classMutexLock{/*AutomaticunlockingwhenMutexLockleavesascope*/public:MutexLock(Mutex&m){M.lock();}~MutexLock(Mutex&m){M.unlock();}};这是一个非常常用的技巧,用于在超出范围时自动释放互斥量。但是,如果我在作用域中需要两个互斥锁怎么办?void*func(void*arg){MutexLockm1;MutexLockm2;do_work();}//m1andm2willgetunl