JoinableQueue
的文档说
join()阻止,直到获取并处理了队列中的所有项目
我知道当我调用Process.join()
或Thread.join()
时,当前进程或线程的执行将停止,直到我调用的join方法的进程或线程退出。
Process
的文档使用与JoinableQueue
join([timeout])阻止调用线程,直到调用join()方法的进程终止或发生可选超时为止。
我是否总能理解“阻止”是指暂停调用线程直到满足某些条件?我在文档中找不到任何确认。如果我搜索“块python”,我只能找到有关代码块或上面引用的相同文档的信息。
答案 0 :(得分:4)
Python的文档正在使用"被阻止" (以及http://en.wikipedia.org/wiki/Process_state的经典意义上的其他形式的相同词干"块") - 任何线程(或过程)都可以"运行"或&#34 ;准备" (但等待CPU),或者#34;阻止" (然后"终止"一旦它完成,基本上完成了。)
(特别是在CPython中,在给定的进程中,只有一个线程可以"运行" Python 代码,无论有多少CPU可用 - 其他的都在抽象意义" ready"实际上在内部被全局解释器锁GIL阻止 - 但是,这是一个实现细节,仅适用于某些实现,而不适用于Python作为语言强>)。