模板佇列 支援多執行緒

2021-07-26 09:42:56 字數 918 閱讀 8279

queue.h:

// 用於快取資料報的佇列容器

#pragma once

#define win32_lean_and_mean

#include #include #define defaultmaxsize 1000000

templateclass queue

;#include "queue.cpp"

queue.cpp:

#include "queue.h"

#include // 預設最大為100

templatequeue::queue(int nmaxlength)

templatequeue::~queue()

// 是否為空

templatebool queue::isempty()

// 獲取當前佇列大小

templateint queue::length()

// 出列

templateconst t& queue::pop()

unlock();

return temp;

}// 是否加入成功

templatebool queue::push(const t& inelement)

m_list.push_back(inelement);

unlock();

return true;

}// 設定最大容量

templateint queue::setmaxlength(int nmaxlength)

// 獲得互斥量

templateint queue::lock()

// 釋放互斥量

templateint queue::unlock()

Redis 定長佇列(支援redis集群)

某些業務場景,需要實現原子性的,效能可靠的分布式定長佇列,它必須具備以下功能 定長list type redislimitlist struct func newlimitlist expireseconds int maxlen int scheme int redislimitlist var ...

多執行緒, 執行緒佇列

self performselectoronmainthread selector refreshcellforliveid withobject userinfo waituntildone yes 該方法的作用是在主線程中,執行制定的方法 塊 引數 selector refreshcellfor...

多執行緒 佇列

對於編寫多執行緒的朋友來說,佇列具有天生的互斥性。在佇列裡面,乙個負責新增資料,乙個負責處理資料。誰也不妨礙誰,誰也離不開誰。所以,佇列具有天生的並行性。只針對 乙個執行緒讀,乙個執行緒寫。當不滿足這個先決條件,多執行緒也完蛋,也得進佇列加鎖,出佇列加鎖 view plain print?defin...