#include <iostream>
#include<thread>
class ObjectPool{
public:
size_t len = 0;
size_t capacity = 128;
size_t start = 0;
static ObjectPool& getInstance(){
static thread_local ObjectPool pool;
return pool;
}
~ObjectPool(){
std::cout << len << std::endl;
std::cout << capacity << std::endl;
std::cout << start << std::endl;
}
};
int main(){
auto func = [](){
std::cout<<"thread:"<<std::this_thread::get_id()<<std::endl;
auto& pool = ObjectPool::getInstance();
};
std::thread t(func);
t.join();
}
#include<thread>
class ObjectPool{
public:
size_t len = 0;
size_t capacity = 128;
size_t start = 0;
static ObjectPool& getInstance(){
static thread_local ObjectPool pool;
return pool;
}
~ObjectPool(){
std::cout << len << std::endl;
std::cout << capacity << std::endl;
std::cout << start << std::endl;
}
};
int main(){
auto func = [](){
std::cout<<"thread:"<<std::this_thread::get_id()<<std::endl;
auto& pool = ObjectPool::getInstance();
};
std::thread t(func);
t.join();
}




