0 引言
本篇文章介绍 用于实现现代C++多线程中Task的另一个工具模版类:std::packaged_task.
关于C++多线程实现Task的工具模版类,前面已经介绍了std::promise 和 std::future, 具体可参考
C++多线程 task--std::promise和std::future_qls315的博客-优快云博客
1 std::packaged_task介绍
std::packaged_task是一个模版类,其主要有如下几个功能
- 将std::future同函数和可调用对象绑定
- std::packaged_task对象是一个可调用对象
- 通过调用std_packaged_task对象,会调用其封装的函数或者可调用对象,并将相应的结果存储在数据channel中,使与函数或可调用对象绑定的std::future变为ready
- 可将其应用在线程池或者任务管理机制中
std::packaged_task的函数声明如下所示
te