C/C++教程

C++ std::thread join()的理解

本文主要是介绍C++ std::thread join()的理解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

对于下述代码,d2在另一个线程里运行完download2函数后才能在主函数线程调用其自身的join(),方法,这样保证主函数线程可以在download2()和download1()两个函数都运行完后调用process。

 

  • 谁调用了join()函数?d2这个线程对象调用了join()函数,因此必须等待d2的下载任务结束了,d2.join()函数才能得到返回。
  • d2在哪个线程环境下调用了join()函数?d2是在主线程的环境下调用了join()函数,因此主线程要等待d2的线程工作做完,否则主线程将一直处于block状态;这里不要搞混的是d2真正做的任务(下载)是在另一个线程做的,但是d2调用join()函数的动作是在主线程环境下做的。

转载见下链接。

C++ std::thread join()的理解 - 代萌 - 博客园在学习C++11的std::thread时,起初非常不理解join()函数的作用以及使用场景,官方的解释又比较晦涩难懂,总觉得get不到关键点。看了很多文章后加上自己的理解,才觉得有了一点眉目,下面结https://www.cnblogs.com/adorkable/p/12722209.html

这篇关于C++ std::thread join()的理解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!