61 C++ 多线程 -- async和 thread的区别。

thread:创建线程,如果系统资源紧张,创建线程有可能失败,整个程序就会报异常,且崩溃。

async: 创建的是异步任务,可以指定这个异步任务是否要创建子线程。

thread:不容易拿到返回值

async:通过返回值future,然后调用future.get(),就可以得到线程入口函数的返回值。

async 函数的第一个参数如果是 std::launch::async,那么就一定会创建线程,当系统资源紧张时,创建线程也会失败,导致系统崩溃

你可能感兴趣的:(c++)