資源簡介
內存池管理 實例源碼
代碼片段和文件信息
//#pragma?once
//#include?“stdafx.h“
#include?
#include?“MemPool.h“
#include?“AutoLock.h“
#include?
CMemPool::CMemPool()
{
}
CMemPool::~CMemPool()
{
}
//釋放所有閑置狀態的內存池
void?CMemPool::FreeIdleTrunk()
{
for?(int?nIndex?=?0;nIndex? {
CAutoLock?lock(m_pMemPoolLock[nIndex]);?
for?(int?i?=?0;i? {
MemPoolData?*_MemPoolData?=?(MemPoolData?*)m_MemPoolTable[nIndex].GetNodeFromIndex(i);
if?(ch_FLASE?==?_MemPoolData->chbIsMemTrunkUsed)
{
free(_MemPoolData);
}
}
m_MemPoolTable[nIndex].FreeIdleTrunk();
}
}
/*******************************************************
申請內存時先加上附加數據然后對其,始終從m_MemPoolTable[i]的第1個元素開始查找
當內存池列中元素沒有達到上限時申請內存加入內存池,反之而直接申請原大小內存
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-11-29?11:27??MemPoolTest\
?????文件?????????327??2015-11-28?14:14??MemPoolTest\AutoLock.h
?????文件????????2780??2015-11-28?13:55??MemPoolTest\DynamicAry.h
?????文件????????2080??2015-11-28?14:16??MemPoolTest\LinuxMemPool?.h
?????文件????????6919??2015-11-28?14:18??MemPoolTest\MemPool.cpp
?????文件????????4593??2015-11-28?14:15??MemPoolTest\MemPool.h
?????文件????????1261??2015-11-29?11:27??MemPoolTest\MemPoolTest.cpp
?????文件?????????888??2015-11-15?12:44??MemPoolTest\MemPoolTest.sln
?????文件???????39424??2015-11-29?11:27??MemPoolTest\MemPoolTest.suo
?????文件????????4371??2014-02-04?12:06??MemPoolTest\MemPoolTest.vcproj
?????文件????????5653??2015-11-28?14:14??MemPoolTest\MemPoolTest.vcxproj
?????文件????????1889??2015-11-28?14:14??MemPoolTest\MemPoolTest.vcxproj.filters
?????文件?????????143??2015-11-15?12:44??MemPoolTest\MemPoolTest.vcxproj.user
?????文件?????????974??2014-02-03?11:54??MemPoolTest\ReadMe.txt
?????文件?????????216??2014-02-03?11:54??MemPoolTest\stdafx.cpp
?????文件?????????276??2014-02-03?11:54??MemPoolTest\stdafx.h
?????文件????????2347??2015-11-28?14:15??MemPoolTest\WindowMemPool.h
- 上一篇:lucene分詞+高亮顯示+分頁 源碼
- 下一篇:播放器
評論
共有 條評論