欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

#ifndef LOCK_FREE_QUEUE_H_
#define LOCK_FREE_QUEUE_H_

//不加鎖隊列,適合一個線程讀取,一個線程寫
#include <list>
template <typename T>
class LockFreeQueue
{
    public:
        LockFreeQueue()
        {
             list.push_back(T());//分割節(jié)點
             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)文章

  • C語言查找數(shù)組里數(shù)字重復次數(shù)的方法

    C語言查找數(shù)組里數(shù)字重復次數(shù)的方法

    這篇文章主要介紹了C語言查找數(shù)組里數(shù)字重復次數(shù)的方法,涉及C語言針對數(shù)組的遍歷與判斷技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • C語言指針用法總結(jié)

    C語言指針用法總結(jié)

    本文詳細講解了C語言指針用法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12
  • 淺談C++ 緩沖區(qū)(buffer)的使用

    淺談C++ 緩沖區(qū)(buffer)的使用

    緩沖區(qū)是用來存放流中的數(shù)據(jù),本文詳細的介紹了C++ 緩沖區(qū)(buffer)的使用,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C++ move semantic移動語義介紹

    C++ move semantic移動語義介紹

    首先,移動語義和完美轉(zhuǎn)發(fā)這兩個概念是在C++的模板編程的基礎(chǔ)上,新增的特性,主要是配合模板來使用。本篇會從C++的值類型,到移動拷貝與移動賦值來理解移動語義與完美轉(zhuǎn)發(fā)
    2022-08-08
  • 數(shù)組和指針的區(qū)別深入剖析

    數(shù)組和指針的區(qū)別深入剖析

    在C/C++中,指針和數(shù)組在很多地方可以互換使用,這使得我們產(chǎn)生一種錯覺,感覺數(shù)組和指針兩者是完全等價的,事實上數(shù)組和指針是有很大的區(qū)別的
    2012-11-11
  • C++模擬實現(xiàn)List迭代器詳解

    C++模擬實現(xiàn)List迭代器詳解

    list不同于其他容器,他是一個鏈表,物理地址并不連續(xù)。所以在實現(xiàn)list類的迭代器的時候,需要將迭代器單獨封裝到一個類里,因為需要重載很多操作符來跟其他容器的迭代器使用達成一致
    2022-04-04
  • C++:構(gòu)造函數(shù),析構(gòu)函數(shù)詳解

    C++:構(gòu)造函數(shù),析構(gòu)函數(shù)詳解

    今天小編就為大家分享一篇關(guān)于C++構(gòu)造函數(shù)和析構(gòu)函數(shù)的文章,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2021-09-09
  • C語言實現(xiàn)學籍管理系統(tǒng)

    C語言實現(xiàn)學籍管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)學籍管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 介紹C語言中tolower函數(shù)的實例

    介紹C語言中tolower函數(shù)的實例

    這篇文章主要介紹了介紹C語言中tolower函數(shù)的實例,本文列出了該函數(shù)的頭文件,功能說明等,以及如何使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語言編程之初識數(shù)組線性查找和二分查找

    C語言編程之初識數(shù)組線性查找和二分查找

    本篇文章是C語言編程篇,主要為大家介紹C語言編程中數(shù)組的線性查找及二分查找分析講解,有需要的朋友可以借鑒參考下,希望可以有所幫助
    2021-09-09

最新評論