问题
By default, a CRITICAL_SECTION object is recursive. Can this behaviour be configured like a pthread mutex to enable or disable recursive thread access?
To clarify in response to the comments: I am referring specifically to a Windows CRITICAL_SECTION object, not a Windows mutex.
回答1:
No, it cannot. Documented APIs do not mention this in any way. Windows critical sections always accept recursive access.
回答2:
A Critical Section always allows recursion within a thread. So does a Mutex. That is by design and cannot be changed.
A Semaphore, on the other hand, can prevent recursion within a thread. See MSDN documentation for more details.
来源:https://stackoverflow.com/questions/13117687/can-a-windows-critical-section-object-be-configured-to-deny-recursive-access