If you want to run code on many platforms, go for Posix Threads. They are available almost everywhere and are quite mature. OTOH if you only use Linux/gcc std::thread
is perfectly fine - it has a higher abstraction level, a really good interface and plays nicely with other C++11 classes.
The C++11 std::thread
class unfortunately doesn't work reliable (yet) an every platform, even if C++11 seems available. For instance in native Android std::thread
or Win64 it just does not work or has severe performance bottlenecks (as of 2012).
A good replacement is boost::thread
- it is very similar to std::thread
(actually it is from the same author) and works reliable, but of course it introduces another dependency from a third party library.