Вы можете на самом деле делать со стандартом.
Если у вас есть c ++ 0x (попробуйте флаг компилятора -std = c ++ 0x или проверьте файл man).
int main()
{
auto future_int=std::async(std::launch::async, []()->int{
//whatever you want in here
return do_work(); //or whatever you need to do
});
//do other stuff
std::cout << future_int.get() << std::endl;
}