且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

是否有效嵌套关键部分?

更新时间:2023-11-26 18:42:22

是的,它是有效的进入同一关键部分,而已经在它内部。从文档

Yes it is valid to enter the same critical section while already inside it. From the docs:


在线程拥有临界区的所有权之后,它可以在不阻塞其执行的情况下对$ Enter $ Cr $ b额外调用EnterCriticalSection或TryEnterCriticalSection
。这防止线程从
死锁本身,同时等待它
已经拥有的关键部分。线程每次进入临界区
EnterCriticalSection和TryEnterCriticalSection成功。线程
每次进入
临界区时必须调用一次LeaveCriticalSection。

After a thread has ownership of a critical section, it can make additional calls to EnterCriticalSection or TryEnterCriticalSection without blocking its execution. This prevents a thread from deadlocking itself while waiting for a critical section that it already owns. The thread enters the critical section each time EnterCriticalSection and TryEnterCriticalSection succeed. A thread must call LeaveCriticalSection once for each time that it entered the critical section.