查看:2014|回复:0
关于使用线程的同步与互斥函数,编写供多线程访问的队列的问题发表时间:2013-01-04 15:35:53

hanhan123

0分享0主题0帖子

学徒一级

(初出茅庐)

各位使用线程的同步与互斥函数,编写一个供多线程访问的队列:我的程序是这样的,请大神帮我看看存在什么问题。

int Queue::put(int d)
{

   EnterCriticalSection(&cs);
   if(count>=SIZE)  
   { // ResetEvent(dev);
       EnterCriticalSection(&cs);
       WaitForSingleObject(dev,INFINITE);
       EnterCriticalSection(&cs);
   }    
   
           
   count++;
   data[rear]=d;  
   printf("put %d in queue\n",d);
   rear=(rear+1)%SIZE;//实现队列循环
   SetEvent(cev);
   LeaveCriticalSection(&cs);

   return 0;

}
int Queue::get()
{
   EnterCriticalSection(&cs);
   if (count==0)  
   {  //    ResetEvent(cev);
           LeaveCriticalSection(&cs);

       WaitForSingleObject(cev,INFINITE);
       EnterCriticalSection(&cs);
   }

   int temp=front;  
   count--;  
   front=(front+1)%SIZE;//实现队列循环  
   SetEvent(dev);
   LeaveCriticalSection(&cs);

   return data[temp];  

}


您需要登录以后才可以回帖    登录|注册