【发布时间】:2012-12-07 10:18:17
【问题描述】:
在delete这个对象(不解锁)之前锁定c++对象的互斥锁是一种好的和安全的做法吗?我这样做是为了保护其他线程在此毫秒内可能使用对象(概率非常低)。
之后内存会不会被分配?这是一个好习惯吗?
例子:
ptr_to_delete->MUTEX.lock_writing(); // can not delete session if its already locked. (additational protection)
ptr_to_delete->cleanup();
delete ptr_to_delete;
【问题讨论】:
-
你用的是什么库?对象的析构函数会释放互斥锁吗?
-
@piokuc“pthreads”。不,Mutex - 是对象的一部分。互斥锁锁定 -> 然后
delete调用对象并且没有析构函数可以解锁(释放互斥锁)。