Pythonキュー

Pythonキュー

キューに関して、最初にその最も基本的な使用法を見てみましょう。

import queue

q = queue.Queue(3)  # 3是maxsize
q.put("你好啊")
print(q.get())

你好啊

これは先入れ先出し法として分類できます(つまり、最初のq.put()は最初のq.get()の出力に対応し、検証できます)

import queue

q = queue.Queue(4)
q.put(1)
q.put(2)
q.put(3)
print(q.get())
print(q.get())
print(q.get())

1
2
3

q.put()は全部で3つあり、q.put()が3つある場合は、出力内容が順番に対応します。

以下の2番目の出力方法を見てみましょう-後入れ先出し:

import queue

q = queue.LifoQueue(4)
q.put(1)
q.put(2)
q.put("alex")
q.put("al")

print(q.get())
print(q.get())
print(q.get())
print(q.get())

al
alex
2
1

最初のq.put()はq.get()のときに最後に出力され、最後のq.put()はq.get()のときに最初に出力されることがわかります。

3番目の出力モード-優先度キュー(自己定義の優先度)を見てみましょう。

import queue

q = queue.PriorityQueue(4)
q.put((5,"元宝"))
q.put((3,"小"))
q.put((0,"xx"))
q.put((-2,"gd"))
print(q.get())
print(q.get())
print(q.get())
print(q.get())

(-2, 'gd')
(0, 'xx')
(3, '小')
(5, '元宝')

q.put()によると、タプルの最初の桁がデータの出力に優先されます。

キューq = queue.Queue(x)の場合、背後にあるq.put()とq.get()の数はxを超えることはできず、2つの数は同じでなければならないことに注意してください(そうでない場合、ブロックされます。 q。get(timeout = t)#t秒間ブロックし、値がない場合はエラーを直接報告しない限り、以下に例を示します。

import queue

q = queue.Queue(3)
q.put(1)
q.put(2)
q.put(3)
print(q.get())
print(q.get())
print(q.get())
q.get(timeout=2)  # 阻塞2s,还没有值直接报错

1
2
3
Traceback (most recent call last):
  File "D:/python代码/线程队列.py", line 12, in <module>
    q.get(timeout=2)  # 阻塞2s,还没有值直接报错
  File "D:\python\python\lib\queue.py", line 178, in get
    raise Empty
_queue.Empty

この記事がお役に立てば幸いです。著者に少しの励ましとサポートを与えることができます。あなたの励ましは、これからの私の絶え間ない原動力です。

おすすめ

転載: blog.csdn.net/m0_50481455/article/details/113951208