Pythonのqueue
モジュールは、複数のプロデューサとコンシューマが存在する状況で、情報を安全に交換するために特に有用です。このモジュールは、エントリが取得される順序のみが異なる、3種類のキューを実装しています。
FIFOキュー
FIFOキューは、最初に追加されたタスクが最初に取得されます。以下に基本的なFIFOキューの作成方法を示します。
import queue
q = queue.Queue()
LIFOキュー
LIFOキューでは、最も最近追加されたエントリが最初に取得されます。これはスタックのように動作します。以下にLIFOキューの作成方法を示します。
import queue
q = queue.LifoQueue()
優先順位付きキュー
優先順位付きキューでは、エントリはソートされ(heapq
モジュールを使用)、最も低い値のエントリが最初に取得されます。以下に優先順位付きキューの作成方法を示します。
import queue
q = queue.PriorityQueue()
データの挿入と取り出し
キューへのデータの挿入はput
メソッドを使用し、データの取り出しはget
メソッドを使用します。
q.put(データ) # データの挿入
q.get() # データの取り出し
以上がPythonのqueue
モジュールの基本的な使い方です。このモジュールを使うことで、複数のプロデューサとコンシューマが存在する状況でも、情報を安全に交換することが可能になります。