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反序输出只能对当前队列中已存在的元素序列进行。不能保证对所有输入来说,输出都是反序的。

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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部