std::async,std::future
auto _print =
{
for(int i = 0; i < 100; i++)
std::cout<<“A”<<std::endl;
};
std::future ret = std::async(std::launch::asycn,_print); //std::launch::async 调用时候就创建线程
//std::launch::deferred 延迟创建,当调用ret.get()或者ret.wait()执行
//std::launch::deferred 可以当同步函数阻塞使用。
std::future_status status;
status = ret.wait_for(std::chrono::milliseconds(5));
if(status == std::future_status::deferred)
std::cout<<“async have not start”<<std::endl;
if(status == std::future_status::timeout)
std::cout<<“time out”<<std::endl;
if(status == std::future_status::ready)
std::cout<<“async have finished”<<std::endl;