C++ 如何拿到线程池的返回值
要想拿到线程池的返回值,需要以下几个步骤:
首先,你需要创建一个
std::future
对象来存储线程池的返回值。std::future
是 C++11 标准中引入的一种机制,该机制可以在异步任务完成时存储其返回值。接着,你需要使用
std::async
函数来启动异步任务。该函数将任务提交到线程池,返回一个std::future
对象,可用于异步地获取异步任务的结果。最后,在需要获取返回值的地方,调用
std::future::get()
方法来获取异步任务的返回值。如果异步任务未完成,则该方法将会阻塞,直到任务完成才会返回结果。
下面是一个简单的示例:
复制代码
在该示例中,我们启动了一个线程池,并向其提交了 10 个任务。然后,我们将所有任务的结果存储在 std::vector<std::future<int>>
中,并使用 std::for_each()
循环获取每个任务的结果。在调用 std::future::get()
方法时,如果异步任务未完成,则该方法将会阻塞,直到任务完成才会返回结果。
相关技术视频教程:c/c++ linux服务器开发/后台架构师免费学习地址
c/c++后端技术交流群:812855908
评论