问下这样的程序为什么会产生死锁?
当线程A 执行InitializeCriticalSection(list1->critical_sec);之后线程B怎么还可能执行
InitializeCriticalSection(list2->critical_sec); 这段不是早就被A给锁住了吗?
void SwapLists(List *list, List *list2)
{
List *tmp_list;
EnterCriticalSection(list1->critical_sec);
EnterCriticalSection(list2->critical_sec);
tmp->list = list1->head;
list1->head = list2->head;
list2->head = temp->list;
LeaveCriticalSection(list1->critical_sec);
LeaveCriticalSection(list2->critical_sec);
}