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

C++11

方式/步调

  1. 1

    实现线程函数,其参数为std::promise类型,该线程函数挪用promise的接口set_value进行传值

    37d12f2eb9389b5046b3b88b8b35e5dde6116e9e.jpg
  2. 2

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

    34fae6cd7b899e51656762cd4ca7d933c9950d79.jpg
  3. 3

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

    9825bc315c6034a87f44e058c513495408237640.jpg
  4. 4

    然后本家儿线程经由过程挪用future的函数get来梗阻期待线程的返回值

    838ba61ea8d3fd1f79e8fae33e4e251f94ca5f01.jpg
  5. 5

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

    0823dd54564e9258f8fcde379282d158cdbf4e1a.jpg
  6. 6

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

    bf096b63f6246b60c028e9ade5f81a4c500fa2c1.jpg
  7. 7

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

    fcfaaf51f3deb48f9a67fa07fe1f3a292cf578d8.jpg
  8. 8

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

    7a899e510fb30f2429ddb7dac695d143ac4b03a7.jpg
  • 发表于 2019-08-11 21:45
  • 阅读 ( 653 )
  • 分类:其他类型

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
admin
admin

0 篇文章

作家榜 »

  1. xiaonan123 189 文章
  2. 汤依妹儿 97 文章
  3. luogf229 46 文章
  4. jy02406749 45 文章
  5. 小凡 34 文章
  6. Daisy萌 32 文章
  7. 我的QQ3117863681 24 文章
  8. 华志健 23 文章

推荐文章

联系我们:uytrv@hotmail.com 问答工具