In C++03 I used pthread with a self-built thread pool that always kept a couple of threads running (since pthread_create
is slow), this way I was able to launch threads for small tasks without thinking about performance issues.
Now, in C++11 we have std::thread
. I guess the standard doesn't say anything about the specific implementation, so my question is about the standard library implementations. Are they generally opting for a pooled approach where constructing std::thread
s is cheap (and e.g. doesn't call pthread_create
on posix), or will std::thread
just be a wrapper?
In other words, is a thread pool still recommended in C++11, or should I just create a std::thread
whenever I need one and leave performance up to the standard library?