multiprocessing.queueはFIFOに近く、LIFO実装は付属していません。LIFOを実装したい場合は、これまでに考えた方法を以下に示します。
より良い方法がある場合は、アドバイスしてください。
2つのアイデア:
1. mp.queueチームに入る前に、最初にチームに配置された要素をデキューして、毎回1つの要素だけがチームに配置されるようにします(最新の要素のみが毎回キューに格納されますが、これはLIFOによって部分的に実現されます)。
2. mp.queueチームを離れた後、queue.LifoQueueチームに入ります。2つのキューが連携してLIFO効果を実現します。
3. basemanager warpを使用して実装されます:https ://stackoverflow.com/questions/33691392/how-to-implement-lifo-for-multiprocessing-queue-in-python
LIFOの逆順出力は、現在のキューにすでにある要素のシーケンスに対してのみ実行できます。すべての入力で出力が反転するという保証はありません。
逆順出力が発生すると、後続の要素が入力されないため、これらの要素の順序を逆にすることはできません。