packaged_task将一个函数(lambda函数,函数对象等)封装在异步执行的线程中,并可通过futrue在另一个线程中获得函数的运行结果:

#include <iostream>
#include <thread>
#include <future>
using namespace std;int add(int a, int b)
{return (a+b);
}using F = int (int, int);int main ()
{packaged_task<F> task(add);                //构造时传递用于异步执行的函数指针addfuture<int> future = task.get_future();    //future模板参数类型为函数add的返回值类型thread t1(move(task), 1, 2);               //创建线程,同时传递函数add的运行参数int res = future.get();                    //获得函数add在另一个线程中的运行结果t1.join();cout<<"add(1,2)="<<res<<endl;              //输出:add(1,2)=3return 0;
}

C++(11):多线程同步packaged_task相关推荐

  1. C++11 多线程同步

    多线程能提高程序的效率,但同时也带来了相应的问题----数据竞争.当多个线程同时操作同一个变量时,就会出现数据竞争.出现数据竞争,一般会用临界区(Critical Section).互斥量(Mutex ...

  2. C++11 多线程之 packaged_task

    packaged_task是什么? template< class R, class ...Args > class packaged_task< fn(Args...)>; ...

  3. [C++11 多线程同步] --- 线程同步概述

    1 线程调度的几个基本知识点 多线程并发执行时有很多同学捋不清楚调度的随机性会导致哪些问题,要知道如果访问临界资源不加锁会导致一些突发情况发生甚至死锁. 关于线程调度,需要深刻了解以下几个基础知识点: ...

  4. [C++11 多线程同步] --- 条件变量的那些坑【条件变量信号丢失和条件变量虚假唤醒(spurious wakeup)】

    1 条件变量的信号丢失 1.1 条件变量的信号丢失场景重现 拿生产者和消费者模型举例,看一段示例代码: #include <iostream> #include <vector> ...

  5. c++11多线程编程(十):packaged_task介绍与实例

    本节讨论c++11中std::packaged_task的特性与使用方法 std::packaged_task<> std::packaged_task<>是一个类模板,代表一 ...

  6. java提供对多线程同步语言级的支持_赞同科技笔试题11

    java面试题 一.不定项选择题(45分) 1. ()关于运算符>>和>>>描述正确的是 A.>>执行移动 B.>>执行翻转 C. >> ...

  7. C++11 多线程库使用说明

    多线程基础 1.1 进程与线程 根本区别: 进程是操作系统资源分配的基本单位,线程是任务调度和执行的基本单位 开销方面: 每个进程都有自己独立的代码和数据空间,程序之间的切换开销较大. 线程可以看作是 ...

  8. C++多线程同步的几种方式

    文章目录 Overview mutex lock_guard unique_lock condition_variable future promise packaged_task async Ref ...

  9. python多线程读取文件的问题_Python多线程同步---文件读写控制方法

    1.实现文件读写的文件ltz_schedule_times.py #! /usr/bin/env python #coding=utf-8 import os def ReadTimes(): res ...

最新文章

  1. iOS原生如何加载HTML中img标签的图片
  2. 打印1-400以内 能同时被5和9 整数的数将这些数放入一个列表中,再输出这个列表
  3. 数字信号处理——巴特沃斯滤波器设计
  4. 请还未提交实名的博客专家在8月4日前尽快提交您的实名信息
  5. OpenGL Tutorial
  6. 实验五 存储管理实验
  7. 详细解释JavaScript中三元表达式
  8. 计算机科学基础word实验一,计算机基础实验报告
  9. typora定制主题分享--绿豆沙背景主题+新night背景主题
  10. 观李永乐老师《双蛋问题》解题后感
  11. 计算机大一基础知识,大一计算机基础知识论文
  12. 河南高考成绩位次查询2021,2021年河南高考状元多少分是谁,河南高考状元名单资料...
  13. Halcon实战 项目二 Bolb实战分析-提取图片中的硬币
  14. ctf解密图片得到flag_CTF从入门到进(fang)阶(qi)之MISC
  15. 《java核心技术36讲》学习笔记-------杨晓峰(极客时间)
  16. 为什么要有SerialVersionUID?
  17. Git中tag使用教程
  18. oracle基础|oracle多表查询用法|什么是等值连接(inner join)|什么是不等值连接(between)|什么是左连接(left join)|什么是右连接(right join)
  19. CQUPT第十三届ACM网赛 C 高次OSU题解
  20. [LabVIEW]子VI中移位寄存器未初始化的严重后果

热门文章

  1. 钉钉开放平台查询宜搭表单实例数据
  2. 钛灵科技入驻中国视界,共筑人工智能视觉产业新高地
  3. VS Code PHP代码提示和格式化插件 IntelliSense安装使用
  4. 2018计算机三级网络技术百度云,百度网盘2018旧版
  5. JSjavascript获取B站bilibili哔哩哔哩分P播放列表并以excel文件保存本地
  6. Android Studio获取数字签名(SHA1)
  7. 音诺恒RK3568高性能智能商显安卓广告机主板解决方案
  8. 无忧·企业文档2.1.4版本更新清单说明来啦
  9. windows7下使用mingw和msys编译JEPG源代码
  10. linux添加键盘布局,Linux 定制键盘布局