main函数里面breakCode(); 是什么意思,退出线程吗
#include <iostream>
#include <string>
#include <chrono>
#include <thread>
#include <future>
using namespace std::chrono;
std::string getData()
{
//确保函数要5秒才能执行完成
std::this_thread::sleep_for(seconds(5));
return "Q是德华";
}
void breakCode()
{
//确保函数要5秒才能执行完成
std::this_thread::sleep_for(seconds(10));
return;
}
int main()
{
std::cout << "开始" << std::endl;
//获取开始时间
system_clock::time_point start = system_clock::now();
std::future<std::string> strFuSec = std::async(std::launch::async, getData);
breakCode();
//数据在future<std::string>对象中可获取之前,将一直阻塞
std::string strData = strFuSec.get();
//获取结束时间
auto end = system_clock::now();
auto diff = duration_cast<std::chrono::seconds>(end - start).count();
std::cout << "用时" << diff << "秒" << std::endl;
std::cout << strData << std::endl;
return 0;
}
std::this_thread::sleep_for(seconds(10));
阻塞当前线程(即调用的线程,上文中即主线程) 10 秒
参考文档:https://www.apiref.com/cpp-zh...