线程的同步控制

typedef struct _Node
{
  struct _Node *next; 
  int data;
} Node;
typedef struct _List
{
  Node *head; 
  CRITICAL_SECTION critical_sec;
} List;
List *CreateList()
{
  List *pList = (List *)malloc(sizeof(pList));
  pList->head = NULL;
  InitializeCriticalSection(&pList->critical_sec);
  return pList;
}
void DeleteList(List *pList)
{
  DeleteCriticalSection(&pList->critical_sec);
  free(pList);
}

void AddHead(List *pList, Node *node)
{
  EnterCriticalSection(&pList->critical_sec);
  node->next = pList->head;
  pList->head = node;
  LeaveCriticalSection(&pList->critical_sec);
}

void Insert(List *pList, Node *afterNode, Node *newNode)
{
  EnterCriticalSection(&pList->critical_sec);
  if(afterNode == NULL)
  {
    AddHead(pList, newNode);
  }
  else
  {
    newNode->next = afterNode->next;
	afterNode->next = newNode;
  }
  LeaveCriticalSection(&pList->critical_sec);
}

Node *next(List *pList, Node *node)
{
  Node* next;
  EnterCriticalSection(&pList->critical_sec);
  next = node->next;
  LeaveCriticalSection(&pList->critical_sec);
  return next;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值