Python Queueモジュールをやってみる
Queue モジュールの使い方を勉強したのでメモしておく。
Queue モジュールには、3種類のキューが実装されていている
- FIFOキュー
- LIFOキュー
- 優先順位付きキュー(priority queue)
FIFOキュー
FIFOとはFirst In First Outのこと。最初に追加されたエントリが最初に取り出される。
from Queue import Queue q = Queue() for i in range(5): q.put(i) print "put: %d" % i print while True: if q.empty(): break else: i = q.get(timeout=1) print "get: %d" % i
結果
put: 0 put: 1 put: 2 put: 3 put: 4 get: 0 get: 1 get: 2 get: 3 get: 4
LIFOキュー
LIFO とは Last In First Out のこと。最後に追加されたエントリが最初に取り出される。(スタックのように振る舞う)
from Queue import LifoQueue q = LifoQueue() for i in range(5): q.put(i) print "put: %d" % i print while True: if q.empty(): break else: i = q.get(timeout=1) print "get: %d" % i
結果
put: 0 put: 1 put: 2 put: 3 put: 4 get: 4 get: 3 get: 2 get: 1 get: 0
優先順位付きキュー(priority queue)
エントリは(heapq モジュールを利用して)ソートされ、最も低い値のエントリが最初に取り出される。
勉強中