2016-02-09 24 views
0

在Python中,使用thread.joinqueue.join之间有什么区别?我觉得它可以在某些情况下做同样的工作。特别是如果在作业的队列中为线程派生和项目选取之间存在一对一的对应关系。如果你打算在queue上使用Threading,那么最好取决于queue.join,如果你只是在平行使用数据结构而没有使用queue的数据结构,但它的东西类似于list,那么你可以使用thread.join ?当然,在thread.join的场景中,你需要提及所有产生的线程。thread.join与queue.join的主要区别是什么?

另外就像queue你通常用于消费输入的东西?我认为在为另一项工作链接输入的情况下,将它用作输出也是有意义的,但通常队列是用于处理输入的?有人可以澄清吗?

回答

1

Queue.join将等待队列为空(实际上,在处理后为每个项目调用Queue.task_done)。将阻塞Thread.join,直到所有线程终止。如果所有线程都从队列中取出项目,则创建任务并在没有剩余任何内容时返回,则使用其中一个或另一个的行为可能会相似。但是你仍然可以拥有根本不使用队列的线程,因此Queue.join将毫无用处。

相关问题