乙個簡單的環形緩衝區,沒有寫加解鎖的部分,用於多執行緒的話還是自己加吧.
#pragma
once
#include
"stdio.h
"#include
"stdlib.h
"#include
"memory.h
"namespace
linker
~ring(){}
bool
put(elementtype&e)
else
}bool
get(elementtype&e)
else
}unsigned
intinuse()
else
if(_first
>
_last)
else
}unsigned
intfreeelementnum()
unsigned
inttotalsize()
bool
isfull()
bool
isempty()
protected
:unsigned
int_size;
unsigned
int_fullsize;
elementtype_elements[size];
unsigned
int_first;
unsigned
int_last;
//lockname_lock;};
測試**:
#include
"ring.h
"#include
"stdio.h
"using
namespace
linker;
intmain()
printf(
"get1,put0-11,get1,put100,get*12timesinuse:%d
",clockring.inuse());}
說實話,這個類剛剛出爐沒有仔細測試,如果有bug -_-! 還請告訴我一下哈~
環形緩衝區
include include include include include define buffsize 1024 1024 define min x,y x y x y pthread mutex t lock pthread mutex initializer struct cycle b...
環形緩衝區
define print buf size 16 1024 static char g pcnetprintbuf 環形緩衝區的首位址 static int g ireadpos 0 環形緩衝區讀的位置 static int g iwritepos 0 環形緩衝區寫的位置 intinit 判斷環形緩...
環形緩衝區
環形緩衝區要維護兩個索引,分別對應寫入端 w 和讀取端 r 寫入 push 的時候,先確保環沒滿,然後把資料複製到 w 所對應的元素,最後 w 指向下乙個元素 讀取 pop 的時候,先確保環沒空,然後返回 r 對應的元素,最後 r 指向下乙個元素。上述的操作並不複雜,不過有乙個小小的麻煩 空環和滿環...