Mutex可以分为递归锁(recursive mutex)和非递归锁(non-recursive mutex)。可递归锁也可称为可重入锁(reentrant mutex),
非递归锁又叫不可重入锁(non-reentrant mutex)。
二者唯一的区别是,同一个线程可以多次获取同一个递归锁,不会产生死锁。而如果一个线程多次获取同一个非递归锁,则会产生死锁。
boost::recursive_mutex 实现了
the Lockable concept ,提供一个递归式的互斥量 。对于一个实例最多允许一个线程拥有其锁定 。支持函数lock(),try_lock() 和
unlock() 并发调用。如果一个线程已经锁定一个boost::recursive_mutex实例,
那么这个线程可以多次通过lock()或
try_lock()锁定这个实例,针对每一次成功的锁定动作,需要调用unlock()来接触锁定。
503

被折叠的 条评论
为什么被折叠?



