How to implement a thread pool
source link: https://vorbrodt.blog/2021/04/15/how-to-implement-a-thread-pool/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
How to implement a thread pool
By popular demand, and at the request of my coworkers, this week’s class was about implementing a simple thread pool using only standard C++ components. It would have taken 1h-30m if I didn’t completely forget how to use a condition variable. It’s 2h long!
Bad
std::condition_variable.wait(...) predicate caused a deadlock and I spent 30 minutes trying to figure it out. If you’re interested in the step-by-step implementation only then fast forward from 1h-15m-15s to 1h-45m-0s. Otherwise watch me reason through it. I eventually realized that the predicate should have returned
true if the queue contained any elements, instead it tried to answer if 1 element was added to it.
For me the lesson was…
If you want to master something, teach it.
Richard Feynman
Code from the class:
lesson_thread_pool_how_to.cpp
Like this:
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK