【发布时间】:2015-03-27 21:10:06
【问题描述】:
JoinableQueue 的文档说
join()阻塞,直到队列中的所有项目都被获取并处理完
我知道当我调用Process.join()或Thread.join()时,当前进程或线程的执行会停止,直到我调用的join方法的进程或线程退出。
Process 的文档使用与 JoinableQueue 相同的语言
join([timeout]) 阻塞调用线程,直到调用其 join() 方法的进程终止或直到发生可选超时。
我是否总是可以将“阻塞”理解为暂停调用线程直到满足某些条件?我在文档中找不到任何确认。如果我搜索“block python”,我只会找到有关代码块或我上面引用的相同文档的信息。
【问题讨论】:
-
我是否总是可以理解“阻塞”是指暂停调用线程直到满足某些条件? 在 python 中的多线程/多处理上下文中,几乎总是:是的。
-
@jedwards 太好了!我认为
JoinableQueue属于 python 中的多线程/多处理。 -
确实如此——看看its package :)
-
请参阅here,了解有关阻塞含义的更一般的问题。这是一个用于所有软件开发的术语,不仅仅是在 Python 中。
-
@dano 这是一个很好的链接,我并不是说阻塞仅在 python 中使用,只是在这种情况下,OP 可以安全地将这个含义与该术语相关联。我不能谈论其他语言如何决定使用它,如果他们决定以不同的方式使用它(这当然会很奇怪和令人困惑)——但这就是我获得资格的原因。如有误导,请见谅。
标签: python python-multiprocessing