默认情况下,CRITICAL_SECTION对象是递归的。是否可以将此行为配置为pthread互斥锁以启用或禁用递归线程访问?
澄清以回应评论:我指的是Windows CRITICAL_SECTION对象,而不是Windows互斥锁。
答案 0 :(得分:6)
不,它不能。记录的API没有以任何方式提及这一点。 Windows关键部分始终接受递归访问。
答案 1 :(得分:4)
Critical Section始终允许在线程内进行递归。 Mutex也是如此。这是设计上的,不能改变。
另一方面,信号量可以防止线程内的递归。有关详细信息,请参阅MSDN documentation。