// ConsoleApplication5.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include<random>
#include<iostream>
#include<vector>
#include<thread>
#include<algorithm>
#include<future>
using namespace std; class A
{
public:
void mythread()
{
cout << "子线程开始了,id为:" << this_thread::get_id() << endl;
this_thread::sleep_for(chrono::seconds(5));
cout << "子线程结束了" << endl;
}
};
int main()
{
A a;
//future<void> s = async(&A::mythread,&a);
cout << "主线程的id:" << this_thread::get_id() << endl;
//一旦闯入了第一个参数launch::deferred,如果不调用get()或者wait,那么子线程不会被调用.
future<void> s = async(launch::deferred,&A::mythread, &a);
//wait_for()在这里的等待
//如果上面的async()函数的第一个参数为launch::deferred,那么这里的wait_for根本不会执行,直接执行接下来的语句
future_status status = s.wait_for(chrono::seconds(6));
if (status==future_status::timeout)
{
cout << "超时了" << endl;
}
else if (status ==future_status::ready)
{
cout << "子线程执行完毕了" << endl;
}
else if (status == future_status::deferred)
{
//只有当async()的第一个参数为launch::deferred时,才会执行到这里
cout << "子线程被延迟执行了" << endl;
s.get();//子线程一直被延迟到这里才开始执行,一旦延迟,系统也不会创建一个新的线程,而是在主线程中进行调用。
}
return 0;
}

最新文章

  1. SqlServer查询表中各列名称、表中列数
  2. HTML5 Web app开发工具Kendo UI Web中如何绑定网格到远程数据
  3. Java篇-File类之常用操作
  4. JavaScript强化教程——JavaScript 总结
  5. 收不到Win10正式版预订通知?一个批处理搞定
  6. IOS 网络浅析-(十三 SDWebImage 实用技巧)
  7. 一个类似bootstrap的foundation
  8. 【bz2002】弹飞绵羊
  9. 用pycharm开发django项目示例
  10. android使用友盟第三方自动更新/手动更新
  11. Graphical Analysis of German Parliament Voting Pattern
  12. 四、什么是vuex
  13. DIV内文字两端对齐
  14. kali linux 网络渗透测试学习笔记(一)Nmap工具进行端口扫描
  15. js分析 邮箱地址加密 [email protected]
  16. C#File类常用文件操作以及一个模拟的控制台文件管理系统
  17. JQuery案例一:实现表格隔行换色
  18. JAVA核心技术I---JAVA基础知识(抽象类和接口)
  19. nginx 内置变量
  20. django 验证码实现

热门文章

  1. AcWing3544. 寻找变化前的01序列
  2. Win8/Win10 Ctrl+Alt+方向键 屏幕显示翻转解决办法
  3. 【LeetCode】437. Path Sum III 解题报告(Python)
  4. 【LeetCode】538. Convert BST to Greater Tree 解题报告(Python)
  5. 【LeetCode】721. Accounts Merge 解题报告(Python)
  6. Fence(poj1821)
  7. 3027 - Corporative Network
  8. Brute-force Algorithm(hdu3221)
  9. 如何利用Python实现Office在线预览
  10. visual studio code的python编程中遇到的SyntaxError:invalid syntax问题的原因和解决办法