Pythonのqueue
モジュールは、複数のプロデューサと複数のコンシューマ間で情報を安全に交換するためのマルチスレッドプログラミングに特に有益です。この記事では、queue
モジュールの基本的な使い方と、while
ループと組み合わせた使用例について解説します。
Queueモジュールの基本
Pythonのqueue
モジュールには、キューを操作するための多くのクラスとメソッドが存在します。以下に、その主要なものを紹介します。
Queueクラス
Queue
クラスをインスタンス化することで、新たなキューの作成が可能です。
import queue
q = queue.Queue()
putメソッド
put
メソッドを使うことで新たな要素をキューの末尾に追加できます。
q.put("apple")
getメソッド
get
メソッドはキューから最初の要素(FIFOキューの場合は最も古い要素)を削除し、その要素を返します。
item = q.get()
whileループと組み合わせた使用例
以下に、while
ループとqueue
モジュールを組み合わせた使用例を示します。
from queue import Queue
queue = Queue()
queue.put("hogehoge")
while queue:
item = queue.get()
if n := len(item) == 1:
print(item)
else:
queue.put(item[:n//2])
queue.put(item[n//2:])
このコードでは、キューが空になるまでループを続け、キューからアイテムを取り出して処理を行います。アイテムの長さが1になるまで、アイテムを半分に分割してキューに戻します。
以上がPythonのqueue
モジュールとwhile
ループの基本的な使い方と組み合わせた使用例になります。これらの知識を活用して、より効率的なマルチスレッドプログラミングを行いましょう。