繁体   English   中英

“加入”一个帖子意味着什么?

[英]What does it mean to “join” a thread?

对于我的班级,我应该找出一段代码有什么问题,而我解密的部分是

// joining a thread blocks until that thread finishes
a.join();
b.join();

加入一个线程与锁定线程一样吗? 因为我认为这个任务的重点是你不应该让线程解锁。

这是一个线程等待另一个线程完成的方式!

一个很好的join用例是 - 例如, main()函数/线程创建一个线程并且不等待(使用join )创建的线程完成并简单地退出,然后新创建的线程也将停止!

以下是一般的线程管理和特别是Thread Join的一个很好的解释 这里有一些代码片段 ,告诉你一些用例join ,当你不使用它时会发生什么!

评论说,这一切,真的。 加入线程意味着等待它完成。 也就是说,阻止当前线程直到另一个完成。

考虑将一个线程称为“分叉”您的进程为两个不同的执行线程。 然后,join是相反的 - 它是这两个单独的线程连接在一起的地方(并且只有父节点从那里继续)。

加入线程意味着要等到该线程处于活动状态。 当线程退出时,调用join()的线程将继续执行。 因此,在上面的示例中,调用a.join()b.join()的线程(可能是主线程)将等待,直到线程abb.join()顺序)完成其作业,然后继续执行代码那是在b.join()

  1. join()在线程上等待完成它的执行。
  2. 您需要分离()一个线程或join()一个线程来管理它。
  3. join()也是,清理线程占用的资源。 你会发现在RAII类的析构函数中调用join()是因为同样的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM