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

i l*_*low 22 c

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

// joining a thread blocks until that thread finishes
a.join();
b.join();
Run Code Online (Sandbox Code Playgroud)

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

Pav*_*ath 43

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

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

以下是一般的线程管理和特别是Thread Join的一个很好的解释!以下是一些代码片段,向您展示了一些使用案例join以及当您不使用它时会发生什么!


mah*_*mah 8

将启动线程视为将您的进程“分叉”为两个不同的执行线程。然后,join 是相反的——这是这两个单独的线程连接在一起的地方(只有父线程从那里继续)。


icy*_*com 6

加入一个线程意味着等待该线程处于活动状态。当线程退出时,线程调用join()将继续执行。因此,在上面的例子中,就是调用线程(大概是主线程)a.join()b.join()将等到两个线程ab(按顺序)完成他们的工作,然后继续执行就是后的代码b.join()


Ken*_*art 5

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


小智 5

  1. join() 等待线程完成它的执行。
  2. 您需要 detach() 一个线程或 join() 一个线程来管理它。
  3. join() 还清理线程占用的资源。由于相同的原因,您会发现在 RAII 类的析构函数中调用了 join()。