IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 【C++11】promise和future介绍 -> 正文阅读

[C++知识库]【C++11】promise和future介绍

【C++11】promise和future介绍

  • C++11提供了std::promise和std::future两个模板类,通过这两个模板类可以实现异步存储值并获取值的功能。

std::promise

The class template std::promise provides a facility to store a value or an exception that is later acquired asynchronously via a std::future object created by the std::promise object. Note that the std::promise object is meant to be used only once.

  • 模板类定义
emplate< class R > class promise;
template< class R > class promise<R&>;
template<>          class promise<void>;
  • 成员函数
函数说明
构造函数-
析构函数-
operator=-
swap交换两个promise对象
get_future绑定并返回一个future对象
set_value设置值
set_value_at_thread_exit在线程退出时设置值
set_exception设置异常
set_exception_at_thread_exit在线程退出时设置异常

std::future

The class template std::future provides a mechanism to access the result of asynchronous operations

  • std::future可以被 std::async,std::packaged_task,std::promise创建,并用于异步获得 std::async,std::packaged_task,std::promise等对象设置的值或异常。
  • 模板类定义
template< class T > class future;
template< class T > class future<T&>;
template<>          class future<void>;
  • 成员函数
函数说明
构造函数-
析构函数-
operator=-
get获取结果
validchecks if the future has a shared state
wait等待结果可用
wait_for等待结果可用(指定等待时间)
wait_until等待结果可用(指定等待时刻)

示例


#include <iostream>
#include <thread>
#include <future>
#include <string>

int main()
{
    std::promise<std::string> p;
    std::future<std::string> f = p.get_future();
 
    std::thread t([&p]{
      p.set_value("lindduo");
    });
 
	std::string ret = f.get();
	std::cout << ret << std::endl;
    t.join();
    return 0;
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-19 11:50:18  更:2022-05-19 11:50:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 18:47:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码