Python3.7.3
from queue import Queue,LifoQueue,PriorityQueue
q =Queue(maxsize=0)
q =LifoQueue(maxsize=0)
q =PriorityQueue(maxsize=0)
# 詳細は後で
maxsize:maxsizeは、キューに格納できるデータ数の上限を指定する整数です。上限に達すると、挿入により、キュー内のデータが消費されるまでブロックが発生します。 maxsizeが0以下の場合、キューサイズに制限はありません。
put(item, block=True, timeout=None)
# item:登録データ(どのデータタイプでも問題ありません)
# block:ブールタイプ,デフォルトTrue
# timeout:残業時間,デフォルトなし
# 1. ブロックがデフォルト値の場合,キューがすでにある場合"フルチーム"状態,また、キューにデータを挿入し続けます,このとき、timeoutの値は、プログラムが例外をスローする時間です。(timeout=なしの場合,プログラムは常にあります"閉塞"状態,データがない限り"チームを離れる")
# 2. ブロックするとき=Falseの場合,タイムアウトが何であっても,キューに入れるだけ"閉塞"すぐに例外をスローする
get(block=True, timeout=None)
# block:ブールタイプ,デフォルトTrue
# timeout:残業時間,デフォルトなし
# 1. ブロックがデフォルト値の場合(True),キューがすでにある場合"空気"状態,続行する必要があります"チームを離れる",このとき、timeoutの値は、プログラムが例外をスローする時間です。(timeout=なしの場合,プログラムは常にあります"空気转"状態(無限ループ),データがない限り"チームに参加する")
# 2. ブロックするとき=Falseの場合,タイムアウトが何であっても,キューに入れるだけ"アイドリング"すぐに例外をスローする
q.qsize()
# キューが空の場合は、Trueを返します,それ以外の場合はFalse
q.empty()
# キューがいっぱいの場合は、Trueを返します,それ以外の場合はFalse
q.full()
q.queue.clear()
from queue import PriorityQueue
q =PriorityQueue()classJob(object):
def __init__(self, priority, description):
self.priority = priority
self.description = description
print('チームに参加する:', description)return
def __lt__(self, other):return self.priority < other.priority
# 数値が小さいほど、優先度が高くなります。
q.put(Job(1,"aaa"))
q.put(Job(2,"bbb"))
q.put(Job(8,"ccc"))
q.put(Job(3,"ddd"))print(q.get().description)print(q.get().description)print(q.get().description)print(q.get().description)
Recommended Posts