#include <iostream>
#include <thread>
#include <future>
using namespace std;
///定时炸弹第一波
void sync_sleep(int s)
{
cout << "sync_sleep----不使用异步" << endl;
///启动定时
this_thread::sleep_for(chrono::seconds(s)); ///延迟s秒
///定时到
cout << "!!!砰!!!" << endl;
///边跑边叫
cout << "~我跑~" << endl;
cout << endl;
}
///定时炸弹第二波
void async_sleep(int s)
{
cout << "async_sleep-----使用异步" << endl;
///启动定时
std::future <void> f = std::async([s]()
{
this_thread::sleep_for(chrono::seconds(s));
///定时到
cout << "!!!砰!!!" << endl;
});
///边跑边叫
cout << "~我跑~" << endl;
///在百米开外安心等
f.wait(); ///启动f
}
int main()
{
sync_sleep(5);
async_sleep(5);
return 0;
}
运行效果:
开始运行:
5秒后:
再过5秒: