为什么java.lang.Thread.join()方法的名称是这样的?

Bor*_*vić 13 concurrency multithreading naming

有谁知道为什么java.lang.Thread的方法join()成员被命名为?它的javadoc是:

等待这个线程死亡.

当在一些线程上调用join时,调用线程正在等待另一个线程死并继续执行.据说调用线程也会死掉,但仍然不清楚为什么作者使用这个名字.

Jon*_*eet 17

它是线程中的常用名称 - 它不像Java是第一个使用它的.(例如,这也是pthreads使用的.)

我想你可以想象它就像两个人散步一样 - 你加入另一个人并与他们一起走,直到你完成,然后回到你正在做的事情.这类型的类比可能是原来的原因,虽然我同意它不完全直观.


Jas*_*oco 8

它以这种方式命名,因为你基本上声明执行的调用线程将等待加入给定的执行状态.它也被命名为posix和许多其他线程包中的join.

在调用join返回之后(除非它被中断),两个执行线程基本上从那一点开始运行(该线程获得现在终止的线程的返回值).


Aar*_*lla 6

当控制流分裂为并发线程时,这源于并发软件建模.之后,两个执行线程将再次加入.

waitToDie()可能是a)太长而且b)太病态.