WEO啦

首页 » 正文内容 » 消息队列模板类
消息队列模板类
收录时间:2022-11-25 21:38:25  浏览:0
消息队列模板类template class TMessageQueuepublic/ vector queue/ / 存储消息的队列 pthread_mutex_t mutex/ sem_t sem/public/ TMessageQueue() pthread_mutex_init( &mutex/ NULL)/ sem_init(&sem/ 0/ 0)/ TMessageQueue() pthread_mutex_destroy(&mutex)/ sem_destroy(&sem)/ FreeQueue()/ void AddElement(TData pData) Lock()/ queue/push_back(pData)/ SetQueueEvent()/ Unlock()/ void AddElementAtFront(TData pData) Lock()/ queue/insert(queue/begin()//push_back(pData)/ SetQueueEvent()/ Unlock()/ int count() return queue/size()/ TData GetElement() WaitQueueEvent()/ TData p// = NULL/ /vector/iterator it/ memset(&p/ 0/ sizeof(TData)/Lock()/ if (false = queue/empty() p = *queue/begin()/ queue/erase(queue/begin()/ Unlock()/ return p/ TData GetElement(int dd) if (dd = 1) WaitQueueEvent()/ TData p// = NULL/ /vector/iterator it/ memset(&p/ 0/ sizeof(TData)/Lock()/ if (false = queue/empty() p = *queue/begin()/ queue/erase(queue/begin()/ Unlock()/ return p/ private/ void Lock() pthread_mutex_lock( &mutex)/ void Unlock() pthread_mutex_unlock( &mutex)/ void SetQueueEvent() sem_post(&sem)/ void WaitQueueEvent() #ifdef LINUX#undef _WITH_DBG#ifndef _WITH_DBG sem_wait(&sem)/#elseint oldvalue = 0/int newvalue = 0/do sem_getvalue(&sem/ &oldvalue)/ while(oldvalue = 0)/while(1) sem_trywait(&sem)/ sem_getvalue(&sem/ &newvalue)/ if(newva
温馨提示:
1. WEO啦仅展示《消息队列模板类》的部分公开内容,版权归原著者或相关公司所有。
2. 文档内容来源于互联网免费公开的渠道,若文档所含内容侵犯了您的版权或隐私,请通知我们立即删除。
3. 当前页面地址:https://www.weo.la/doc/a6bc46f3b7d83442.html 复制内容请保留相关链接。