본문 바로가기
반응형

프로그래밍53

intel tbb::concurrent_queue를 multi level queue로 이용해보기 ubuntu에서는 아래와 같이 설치 필요 * 직접 github에서 받아도 되나 편리한걸 쓰자 sudo apt install libtbb-dev build는 요런식으로.. g++ multi_concurrent_queue.cpp -pthread -ltbb -std=c++14 MAX개(1,000,000)의 Entry class를 push하는 thread를 1, 2, 4개씩, pop 하는 1개의 thread를 생성하여 시간 측정 #include #include #include #include #include #include #include #include #include using namespace std; using std::chrono::system_clock; using std::chrono::durati.. 2022. 1. 9.
intel tbb::concurrent_queue를 이용해보기 ubuntu에서는 아래와 같이 설치 필요 * 직접 github에서 받아도 되나 편리한걸 쓰자 sudo apt install libtbb-dev build는 요런식으로.. g++ concurrent_queue.cpp -pthread -ltbb -std=c++14 stl::queue와 mutex를 이용한 queue와 tbb::concurrent_queue의 비교 MAX개(1,000,000)의 Entry class를 push하는 thread를 1, 2, 4개씩, pop 하는 1개의 thread를 생성하여 시간 측정 #include #include #include #include #include #include #include #include using namespace std; using std::chrono.. 2022. 1. 9.
c++로 작성한 간단한 multi level queue 표준 lib을 써서.. #include #include #include #include #include using namespace std; template class MultiLevelQueue { public: MultiLevelQueue(void) { } virtual ~MultiLevelQueue(void) { } void Push(PriorityEnum p, shared_ptr entry) { queue_[p].push(entry); } shared_ptr Pop(void) { for (auto& q : queue_) { if (q.second.size()) { auto item = q.second.front(); q.second.pop(); return item; } } return share.. 2022. 1. 8.
c++로 작성한 간단한 pool 내가 만든 module에 쓸 생각으로 간단한 pool을 만들었다. 일부러 library를 사용하려고 하였다. #include #include #include #include #include #include #include using namespace std; static const int MAX = 32 * 1024; template using CallbackToRelease = std::function; class Item : public std::enable_shared_from_this { public: Item(void) = delete; Item(CallbackToRelease funcPtr) : releaseFuncPtr_(funcPtr) { } virtual ~Item(void) { } vo.. 2022. 1. 8.
반응형