最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解析C++無鎖隊(duì)列的實(shí)現(xiàn)代碼

 更新時間:2013年05月16日 15:44:08   作者:  
本篇文章是對C++無鎖隊(duì)列的實(shí)現(xiàn)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
本文給出一種C++無鎖隊(duì)列的實(shí)現(xiàn)代碼,主要用于一個線程讀取數(shù)據(jù)另外一個線程寫數(shù)據(jù)
復(fù)制代碼 代碼如下:

#ifndef LOCK_FREE_QUEUE_H_
#define LOCK_FREE_QUEUE_H_

//不加鎖隊(duì)列,適合一個線程讀取,一個線程寫
#include <list>
template <typename T>
class LockFreeQueue
{
    public:
        LockFreeQueue()
        {
             list.push_back(T());//分割節(jié)點(diǎn)
             iHead = list.begin();
             iTail = list.end();
        };

       void Produce(const T& t) //存消息
       {
            list.push_back(t);
            iTail = list.end();
            list.erase(list.begin(), iHead);
       };

       bool Consume(T& t) //取消息
       {
            typename TList::iterator iNext = iHead;
            ++iNext;
           if (iNext != iTail)
           {
                iHead = iNext;
                t = *iHead;
                return true;
           }
           return false;
       };

       bool Peek(T& t) //查看消息不刪除
       {
            typename TList::iterator iNext = iHead;
            ++iNext;
            if (iNext != iTail)
            {
                t = *iNext;
                return true;
            }
            return false;
       }

       bool IsEmpty()
       {
           typename TList::iterator iNext = iHead;
          ++iNext;
          if (iNext != iTail)
          {
               return false;
          }
          else
          {
               return true;
          }
       }

       int GetMaxSize()
       {
           return list.max_size();
       };

      private:
           typedef std::list<T> TList;
           TList list;
           typename TList::iterator iHead, iTail;
};
#endif

相關(guān)文章

最新評論

定南县| 赣榆县| 高清| 高淳县| 雷波县| 临夏市| 故城县| 定襄县| 阳高县| 陕西省| 宁阳县| 镶黄旗| 建水县| 南靖县| 唐海县| 景德镇市| 七台河市| 康保县| 安顺市| 卢氏县| 乌审旗| 阿瓦提县| 景德镇市| 罗源县| 梁河县| 洞头县| 平塘县| 福安市| 潼关县| 定襄县| 株洲市| 疏附县| 大宁县| 沁阳市| 朝阳区| 绍兴县| 汉寿县| 安达市| 泸溪县| 长治县| 通化县|