为什么multiprocessing.Queue没有task_done方法

时间:2015-06-09 06:30:06

标签: python multithreading multiprocessing python-multithreading python-multiprocessing

为什么Queue.Queuetask_done方法而multiprocessing.Queue没有这种方法?

2 个答案:

答案 0 :(得分:3)

我认为你需要JoinableQueue

答案 1 :(得分:2)

我的猜测是:multithreading模块很早就实现了,multiprocessing模块有2.6版本。

multiprocessing稍微更正了队列设计,并提供了比multithreading更好的灵活性,因为您可以在QueueSimpleQueueJoinableQueue之间进行选择。在您的使用案例(速度与可靠性)。

现在像这样修改multithreading会导致向后不兼容,因为必须删除jointask_done方法。想象一下,需要重构的代码,必须编写新的测试,API被破坏 - 对我来说显然没有任何好处。