亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解析C++無鎖隊列的實現代碼

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

#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

相關文章

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

    C語言查找數組里數字重復次數的方法

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

    C語言指針用法總結

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

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

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

    C++ move semantic移動語義介紹

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

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

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

    C++模擬實現List迭代器詳解

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

    C++:構造函數,析構函數詳解

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

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

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

    介紹C語言中tolower函數的實例

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

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

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

最新評論