“加入”一个post意味着什么?
对于我的class级,我应该找出一段代码有什么问题,而我解密的部分是
// joining a thread blocks until that thread finishes a.join(); b.join();
加入一个线程与锁定线程一样吗? 因为我认为这个任务的重点是你不应该让线程解锁。
这是一个线程等待另一个线程完成的方式!
一个很好的join
用例是 – 例如, main()
函数/线程创建一个线程并且不等待(使用join
)创建的线程完成并简单地退出,然后新创建的线程也将停止!
以下是一般的线程管理和特别是Thread Join的一个很好的解释 ! 这里有一些代码片段向您展示了一些连接的用例以及当您不使用它时会发生什么!
评论说这一切,真的。 加入线程意味着等待它完成。 也就是说,阻止当前线程直到另一个完成。
加入线程意味着要等到该线程处于活动状态。 当线程退出时,调用join()
的线程将继续执行。 因此,在上面的示例中,调用a.join()
和b.join()
的线程(可能是主线程)将等待,直到线程a
和b
( b.join()
顺序)完成其作业,然后继续执行代码那是在b.join()
。
考虑将一个线程称为“分叉”您的进程为两个不同的执行线程。 然后,join是相反的 – 它是这两个单独的线程连接在一起的(并且只有父级从那里继续)。
- join()在线程上等待完成它的执行。
- 您需要分离()一个线程或join()一个线程来管理它。
- join()也是,清理线程占用的资源。 你会发现在RAII类的析构函数中调用join()是因为同样的原因。