0 引言
本文主要讲解C++11/14/17中所提供的应用于多线程编程中的Task机制。
Task可由如下几部分取得
- std::async
- std::packaged_task
- std::promise和std::future
而本文主要讲解std::promise和std::future相关的内容。
std::promise和std::future通过一个数据管道进行交流,可以将std::promise看作生产者,std::future看作消费者,其两者形成如下的方式交互

1 std::promise
std::promise本身是一个模版类,通过std::promise可以像数据管道中设置value,异常和相应的通知信息。
std::promise提供了如下接口
get_future() // 返回相应的future
set_value() // 设置一个相应的值
set_exception() // 设置一个异常
set_value_at_thread_exit() // 设置一个值,当线程退出时,promi
本文深入探讨C++11及更高版本中的多线程任务机制,重点阐述std::promise和std::future的用法。std::promise作为数据生产者,std::future作为消费者,二者通过数据管道通信。文章列举了std::promise和std::future的主要接口,并提供示例代码展示它们如何在多线程环境中协同工作,实现无锁同步,简化并发编程。
订阅专栏 解锁全文

1万+

被折叠的 条评论
为什么被折叠?



