python多进程 multiprocessing LIFO queue实现

multiprocessing.queue 是接近FIFO的,本身不带有LIFO的实现。如果想要实现LIFO,这里列出目前我能想到的方法。

如果大家有更好的方法,欢迎指教。

两种思路:

1,入 mp.queue 队之前先对之前放在队中的元素进行出队操作,这样每次队中只放一个元素 (每次队列中只存放最新的那一个元素,算是部分实现了LIFO)

2,出 mp.queue 队之后进入queue.LifoQueue 队。两个队列共同实现一个LIFO的效果。

3,用basemanager warp实现:https://stackoverflow.com/questions/33691392/how-to-implement-lifo-for-multiprocessing-queue-in-python

LIFO反序输出只能对当前队列中已存在的元素序列进行。不能保证对所有输入来说,输出都是反序的。

因为反序输出发生的时候,后续还有元素没有输入进来,所以就不可能对那些元素也反序了。

发布了202 篇原创文章 · 获赞 80 · 访问量 30万+

猜你喜欢

转载自blog.csdn.net/qxqxqzzz/article/details/105101016
今日推荐