6

默认情况下,CRITICAL_SECTION 对象是递归的。是否可以像 pthread 互斥锁一样配置此行为以启用或禁用递归线程访问?

为了回应评论澄清:我专门指的是 Windows CRITICAL_SECTION 对象,而不是 Windows 互斥体。

4

2 回答 2

8

不,它不能。记录在案的 API 没有以任何方式提及这一点。Windows 临界区总是接受递归访问。

于 2012-10-29T09:26:08.627 回答
4

临界区总是允许线程内的递归。互斥体也是如此。这是设计使然,无法更改。

另一方面,信号量可以防止线程内的递归。有关详细信息,请参阅MSDN 文档。

于 2012-10-30T03:11:24.210 回答