Python 为什么在线程模块中调用.join()方法.join()?
这是一个相当愚蠢的问题……但它却让我烦透了。在Python 为什么在线程模块中调用.join()方法.join()?,python,multithreading,python-multithreading,Python,Multithreading,Python Multithreading,这是一个相当愚蠢的问题……但它却让我烦透了。在threading模块中,我们有一个Thread.join()方法。 我知道它会阻止调用线程,但是为什么.join()会被称为“join”?为什么它不被称为main\u thread\u wait或block\u parent\u thread或类似的东西 每次看到.join(),我都会感觉到子线程正在连接一些东西来完成计算。选择此特定关键字作为方法名称有什么原因吗?子线程加入父线程Thread.start使父线程生成一个线程并释放它Thread.j
threading
模块中,我们有一个Thread.join()
方法。
我知道它会阻止调用线程,但是为什么.join()
会被称为“join”?为什么它不被称为main\u thread\u wait
或block\u parent\u thread
或类似的东西
每次看到
.join()
,我都会感觉到子线程正在连接一些东西来完成计算。选择此特定关键字作为方法名称有什么原因吗?子线程加入父线程Thread.start
使父线程生成一个线程并释放它Thread.join
使父块(等待)直到子块完成其工作
你可以这样想象:
- 父线程是一个强大的神,可以活很长时间
- 用
它生下一个凡人Thread.start
- 一出生,凡人就逃跑,开始过自己的生活(执行
方法)run
- 上帝可能会继续关心自己的事情
- 他还可能想看看他的后代,看看它是否真的活着
- 他也可能开始观察后代的整个生命,等待他回来,直到后者死亡(这是
方法)。在这样做的时候,上帝不能做任何其他事情,因为他非常喜欢欣赏他的造物(对join
加入
的调用阻止了父线程),但是在凡人死后,上帝可以继续他的生活
wait()
pthread库的其他部分确实使用术语wait,但通常用于更高级别的同步原语,如或。我认为pthread\u wait()
在“等待[某个同步对象]”和“等待线程终止”之间是不明确的。第一个答案。这个名称是从一个视觉上复制过来的,我相信它是从线程标准化之前编写的各种Unixy线程实现中复制过来的。