thread:创建线程,如果系统资源紧张,创建线程有可能失败,整个程序就会报异常,且崩溃。
async: 创建的是异步任务,可以指定这个异步任务是否要创建子线程。
thread:不容易拿到返回值
async:通过返回值future,然后调用future.get(),就可以得到线程入口函数的返回值。
async 函数的第一个参数如果是 std::launch::async,那么就一定会创建线程,当系统资源紧张时,创建线程也会失败,导致系统崩溃
thread:创建线程,如果系统资源紧张,创建线程有可能失败,整个程序就会报异常,且崩溃。
async: 创建的是异步任务,可以指定这个异步任务是否要创建子线程。
thread:不容易拿到返回值
async:通过返回值future,然后调用future.get(),就可以得到线程入口函数的返回值。
async 函数的第一个参数如果是 std::launch::async,那么就一定会创建线程,当系统资源紧张时,创建线程也会失败,导致系统崩溃