gpt4 book ai didi

c++ - 多层关键部分是否有效?

转载 作者:行者123 更新时间:2023-11-30 05:42:22 32 4
gpt4 key购买 nike

例如,这个有效吗?

CRITICAL_SECTION cs_A;
CRITICAL_SECTION cs_b;

::InitializeCriticalSection( &cs_A );
::InitializeCriticalSection( &cs_B );

::EnterCriticalSection( &cs_A ); // First level

/* do some stuff with A */

::EnterCriticalSection( &cs_B ); // Second level

/* do some stuff with A and B */

::LeaveCriticalSection( &cs_B ); // Second level

/* do some stuff with A */

::LeaveCriticalSection( &cs_A ); // First level

::DeleteCriticalSection( &cs_A );
::DeleteCriticalSection( &cs_B );

我想用两个关键部分来保护两个非常重要的代码部分。我可以这样做吗?

可能重复: Is it valid to nest a critical section?

最佳答案

每当您有多个锁并且在一个时间点可能持有多个锁时,您必须确保始终以相同的顺序获取锁。不遵守这一点可能会导致死锁。

这是一个广为人知和广泛讨论的规则。例如,Use Lock Hierarchies to Avoid Deadlock .

关于c++ - 多层关键部分是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30710099/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com