在Python中,使用thread.join
与queue.join
之间有什么区别?我觉得在某些情况下它可以做同样的工作。特别是如果生成的线程与从作业队列中挑选的项目之间存在一对一的相关性。如果您要在Threading
上使用queue
,最好依赖queue.join
,如果您只是在没有{{1}的情况下进行并行处理使用的数据结构,但它可以使用queue
list
?在thread.join
的场景中,你需要提及所有产生的线程。
另外,您通常会使用thread.join
消费输入的东西?我认为在链接另一个作业的输入的情况下,使用它作为输出是有意义的,但通常队列是用于处理输入?有人可以澄清吗?
答案 0 :(得分:1)
Queue.join
将等待队列为空(实际上在处理后为每个项目调用Queue.task_done
)。 Thread.join
将阻塞,直到所有线程终止。如果所有线程从队列中获取项目,创建任务并在没有任何内容时返回,则使用其中一个或另一个的行为可能类似。但是,您仍然可以拥有根本不使用队列的线程,因此Queue.join
将毫无用处。