\

Pythonでは、queueモジュールを使用して最大サイズを持つキューを実装することができます。このモジュールは、複数のプロデューサとコンシューマ間で情報を安全に交換するためのキューを実装しています。

queueモジュールには、以下の3つのキュークラスが含まれています。

  1. queue.Queue(maxsize=0): FIFO(先入れ先出し)キューのコンストラクタです。maxsizeはキューに配置できるアイテムの数の上限を設定する整数です。このサイズに達すると、キューのアイテムが消費されるまで挿入がブロックされます。maxsizeが0以下の場合、キューのサイズは無限大になります。
  2. queue.LifoQueue(maxsize=0): LIFO(後入れ先出し)キューのコンストラクタです。maxsizeとキューのサイズの無限大に関するルールはqueue.Queueと同じです。
  3. queue.PriorityQueue(maxsize=0): 優先度キューのコンストラクタです。maxsizeとキューのサイズの無限大に関するルールはqueue.Queueと同じです。最も低い値のエントリが最初に取得されます。

これらのキューは、エントリが取得される順序だけで異なり、内部的にはすべてロックを使用して競合するスレッドを一時的にブロックします。

また、collectionsモジュールのdequeを使用して最大長を持つキューを簡単に実装することもできます。

from collections import deque

# 最大長が3のキュー
q = deque(maxlen=3)

q.append(10)
q.append(20)
q.append(30)
# deque([10, 20, 30])

q.append(40)
# deque([20, 30, 40])

以上のように、Pythonでは最大サイズを持つキューを簡単に実装することができます。これらの知識を活用して、Pythonでのデータ処理をより効率的に行うことができます。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です