Pythonのqueue
モジュールは、複数プロデューサ-複数コンシューマ (multi-producer, multi-consumer)キューを実装します。このモジュールは、複数のスレッドの間で情報を安全に交換しなければならないときのマルチスレッドプログラミングで特に有益です。
キューの種類
このモジュールでは3種類のキューが実装されています。
- FIFO (First In First Out) キュー: 最初に追加されたエントリが最初に取り出されます。
- LIFO (Last In First Out) キュー: 最後に追加されたエントリが最初に取り出されます。
- 優先順位付きキュー (priority queue): エントリはソートされ、最も低い値のエントリが最初に取り出されます。
キューのメソッド
キューオブジェクト (Queue, LifoQueue, PriorityQueue)は、以下のpublicメソッドを提供しています。
Queue.qsize()
: キューの近似サイズを返します。Queue.empty()
: キューが空の場合は True を返し、そうでなければ False を返します。Queue.full()
: キューが一杯の場合は True を返し、そうでなければ False を返します。Queue.put(item, block=True, timeout=None)
: item をキューに入れます。Queue.get(block=True, timeout=None)
: キューからアイテムを取り除き、それを返します。
以上がPythonのqueue
モジュールの基本的な概要となります。このモジュールを使うことで、複数のスレッド間で情報を安全に交換することが可能となります。