スタックとキュー
データを一時的に保存する方法には、スタックとキューがあります。
これらはデータの入出力のときの処理方法が異なります。
スタック
スタック(Stack) は LIFO(Last-in-First-Out)で、最後にエントリーしたデータが最初にEXITされます。
table: スタックでの用語
追加(ENTRY) 抽出(EXIT)
push() pop()
code: python
basket = []
basket.append('apple')
basket.append('banana')
basket.append('orange')
last_item = basket.pop()
print(last_item)
last_item = basket.pop()
print(last_item)
print(basket)
キュー
キュー(Queue)はFIFO(First-In-First-Out)で、最初にENTRYしたデータが最初にEXITされます。
table: スタックでの用語
追加(ENTRY) 抽出(EXIT)
enqueue() dequeue()
push() shift()
put() get()
code: python
from collections import deque
basket = deque()
basket.append('apple')
basket.append('banana')
basket.append('orange')
last_item = basket.pop()
print(last_item)
print(basket)
first_item = basket.popleft()
print(first_item)
print(basket)
code: python
from queue import Queue
basket = Queue()
basket.put('apple')
basket.put('banana')
basket.put('orange')
last_item = basket.get()
print(last_item)
last_item = basket.get()
print(last_item)
print(basket)
スタックやキューにタスクオブジェクトを格納すれば、タスクの投入(サブミット: Submit) と実行処理(ワーカー: Worker) を分離できるので、分散処理しやすくなります。