I tend to favor C++11 threads (when supported)... ie the <thread> header.
When not supported, I typically fall back to boost threads, since the API is practically identical to C++11 threads.
Like, what is the easiest way to do it
Multithreading in C++ is filled with subtleties and nuances and is very very tricky. There isn't really any "easy" way to do it. Or rather... it's really easy to do it wrong.
Best practice is to minimize the data shared by multiple threads.