python 訊息佇列

2022-03-09 13:13:29 字數 1409 閱讀 5344

1.先進先出

2.後進先出

3.優先順序佇列

4.雙向佇列

import

queue

q = queue.queue(2) #

佇列最大長度

q.put(11)

q.put(22)

print(q.qsize()) #

獲取佇列的個數

print

(q.get())

print

(q.get())

#先進先出佇列

#put放資料,block是否阻塞,timeout = 阻塞時的超時時間

#get 取資料,預設阻塞。block是否阻塞,timeout阻塞時的超時時間

#佇列最大長度

#qsize()真實個數

#maxsize 支援最大個數

#q.get()執行完成後,執行q.task_done()告訴佇列取值完成

#join,task_done ,阻塞程序,當佇列中任務執行完畢之後,不再阻塞

#q = queue.queue(2) #可以加引數,表示佇列最大個數

#q.put(33,timeout=2) #阻塞2秒,如果2s後還是無法插入佇列,然後直接報錯

#q.put(33,block=false) #block=false 表示不阻塞,如果不能插入佇列,然後直接報錯

out:211

22

import

queue

q =queue.lifoqueue()

q.put(123)

q.put(456)

print(q.get())

out:

456123

數字越小,優先順序越高

import

queue

q =queue.priorityqueue()

q.put((0,

"test1"))

q.put((3,"

test3"))

q.put((4,"

test4"))

print

(q.get())

print

(q.get())

print(q.get())

out:

(0, 'test1')

(3, 'test3')

(4, 'test4')

數字越小,優先順序越高

import

queue

q =queue.deque()

print

(q.pop())

print

(q.pop())

print(q.popleft())

out:

444123

555

Python訊息佇列

訊息中介軟體 就是訊息佇列 非同步方式 不需要立馬得到結果,需要排隊 同步方式 需要實時獲得資料,堅決不能排隊 例子 多程序模組multiprocessing from multiprocessing import process from multiprocessing import queue ...

python 操作訊息佇列

其中p指producer,即生產者 c指consumer,即消費者。中間的紅色表示訊息佇列,例項中表現為hello佇列。往佇列裡插入資料前,檢視訊息佇列 sudo rabbitmqctl list queues listing queues celeryev.db53a5e0 1e6a 4f06 a...

python 操作訊息佇列

閱讀目錄 回到頂部 其中p指producer,即生產者 c指consumer,即消費者。中間的紅色表示訊息佇列,例項中表現為hello佇列。往佇列裡插入資料前,檢視訊息佇列 sudo rabbitmqctl list queues listing queues celeryev.db53a5e0 1...