如何实现从线程中异步获取值

C++11
方式/
1实现线程函数, 其参数为std::promise类型, 该线程函数挪用promise的接口set_value进行传值

如何实现从线程中异步获取值

文章插图

2本家儿线程中界说promise对象, 然后经由过程这个对象获取future对象

如何实现从线程中异步获取值

文章插图

3启动线程函数, 然后将上一
界说的promise对象经由过程指针传递进去

如何实现从线程中异步获取值

文章插图

4【如何实现从线程中异步获取值】然后本家儿线程经由过程挪用future的函数get来梗阻期待线程的返回值

如何实现从线程中异步获取值

文章插图

5调试运行输出如下成果, 从这个成果可以看出future当作功获取线程返回的值

如何实现从线程中异步获取值

文章插图

6最后再来总结下, 先界说promise对象, 从promise对象获取futrue对象, 接着启动线程, 线程经由过程promise对象将值传递归去, 而本家儿线程挪用future对象梗阻期待

如何实现从线程中异步获取值

文章插图

7别的需要注重的是promise的set_value只能设置一次, 而且凡是promise与future配对利用

如何实现从线程中异步获取值

文章插图

8若是promise的set_value设置两次, 就会呈现如下图所示的错误, 然后程序退出

如何实现从线程中异步获取值

文章插图


以上内容就是如何实现从线程中异步获取值的内容啦, 希望对你有所帮助哦!

    推荐阅读