object_pool Class template¶
对象池类模板。
语法¶
namespace yasio {
template <typename _Ty, typename _Mutex = ::yasio::null_mutex>
class object_pool;
}
成员¶
公共构造函数¶
Name | Description |
---|---|
object_pool::object_pool | 构造1个object_pool 对象 |
公共方法¶
Name | Description |
---|---|
object_pool::create | 从对象池创建1个对象 |
object_pool::destroy | 销毁对象并回收到对象池 |
要求¶
头文件: yasio/yasio.hpp
object_pool::object_pool¶
构造 object_pool
对象。
参数¶
_ElemCount
单个chunk允许分配最大对象数量。
object_pool::create¶
创建1个对象。
参数¶
args
构造对象所需参数,必须和对象类型构造函数匹配,否则编译报错。
object_pool::destroy¶
销毁对象,并将对象的内存块放回对象池中。
参数¶
_Ptr
要销毁的对象地址。
示例¶
#include "yasio/object_pool.hpp"
int main() {
// 非线程安全版本
yasio::object_pool<int> pool(128);
auto value1 = pool.create(2023);
auto value2 = pool.create(2024);
auto value3 = pool.create(2025);
pool.destroy(value3);
pool.destroy(value1);
pool.destroy(value2);
// 线程安全版本
yasio::object_pool<int, std::mutex> tsf_pool(128);
value1 = tsf_pool.create(2023);
value2 = tsf_pool.create(2024);
value3 = tsf_pool.create(2025);
tsf_pool.destroy(value3);
tsf_pool.destroy(value1);
tsf_pool.destroy(value2);
return 0;
}