void Close ()
{
Enter A ; // 完整代码为 EnterCriticalSection (&b); 以下都按此简写。
Enter B;
Leave B;
Leave A;
}
void Read ()
{
Enter A;
Enter B;
Leave A;
Leave B;
}
【0】上述的代码会遇到死锁吗?
我的理解是,
【1】Enter顺序一致
【2】每个Enter都正常配对Leave了,但leave顺序可能不一致
【3】其它非互斥代码均正确 ,不捣乱。
多个锁在上述前提下,肯定不会死锁。 这对吗?
目测不会锁住,因为enterb前需要entera,所以两个代码前两行都能保证原子执行