摘要: shared_future 获得方式 只能由 future 得到 作用 同 future 区别 可以多线程、多次访问 shared state 原理 shared state 指针 + 引用计数 基本函数 构造函数、析构函数和赋值操作等 // valid 情况 1 :false,2 :同参数,且参数 阅读全文
posted @ 2021-05-13 23:54 Jamgun 阅读(172) 评论(0) 推荐(0) 编辑
摘要: Future 获得方式 std::async 的返回值 std::packaged_task 的消费方式 std::promise 的消费方式 作用 查询 状态 等待 返回值 获取 返回值 以此配合完成线程同步 原理 shared state 指针 基本函数 构造函数、析构函数和赋值操作等 // 构 阅读全文
posted @ 2021-05-13 23:53 Jamgun 阅读(180) 评论(0) 推荐(0) 编辑
摘要: packaged_task 背景 启发于function pointer 采用类似 promise 的设计 方便的获取线程运行结果 原理 生产者 - 消费者模型 基本函数 生产函数,分两步 设置value或者exception 设置shared state // 设置value或者exception 阅读全文
posted @ 2021-05-13 23:52 Jamgun 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 背景 不想利用async提供的线程模型 还想方便的获取线程运行结果 原理 生产者 - 消费者模型 基本函数 生产函数,分两步 设置value或者exception 设置shared state template <class R&> // 设置value或者exception后,立即将shared 阅读全文
posted @ 2021-05-13 23:49 Jamgun 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 背景 C++11添加了thread,可以通过std::thread()方便的创建线程 thread不能方便的获取线程运行结果 用法 返回值为std::future(下面会讲到),第一个参数policy,第二个参数为function,可以是lamda template< class Function, 阅读全文
posted @ 2021-05-13 23:48 Jamgun 阅读(327) 评论(0) 推荐(0) 编辑