queue佇列簡單操作

2021-10-02 01:39:49 字數 1362 閱讀 5875

queue fifo 先進先出

lifoquere 先進後出(棧)

priorityqueue 優先佇列(通過自定義演算法實現)

為什麼用queue庫

python標準庫是執行緒之間常見的資料交換形式,queue的使用可以確保python的執行緒安全

2. 常用方法

q = queue.queue(maxsize)		建立佇列,並可以指定大小

q.empty() 判斷佇列是否為空

q.full() 判斷佇列是否滿

q.put(data) 向佇列中放入資料

q.get() 從佇列中拿資料

q.task_done() 宣告佇列操作結束,並且修改佇列狀態

q.join() 讓主線程等待所有佇列操作完畢再結束

```go

import time

import queue

import threading

import random

def product(query_info):

for i in range(5000):

time.sleep(0.5)

item = random.randint(0, 100)

query_info.put(item)

print(f'在佇列中放入資料項:')

def consumter(query_info):

while true:

try:

item = query_info.get(timeout=3)

print(f'在佇列中移除資料項:')

except queue.empty:

break

else:

query_info.task_done() # task_done()宣告當前佇列處理完畢

def main():

q = queue.queue() #maxsize=4

threads =

p = threading.thread(target=product, args=(q, ))

p.start()

for i in range(2):

t = threading.thread(target=consumter, args=(q, ))

t.start()

t.join()

q.join() # 佇列所有項處理完畢前阻塞

main()

C 佇列Queue基本操作

c 佇列queue是一種容器介面卡,它給予程式設計師一種先進先出 fifo 的資料結構。queue 的基本操作舉例如下 queue入隊,如例 q.push x 將x 接到佇列的末端。queue出隊,如例 q.pop 彈出佇列的第乙個元素,注意,並不會返回被彈出元素的值。訪問queue隊首元素,如例 ...

C 佇列queue基本操作

c 佇列queue模板類的定義在標頭檔案中,queue 模板類需要兩個模板引數,乙個是元素型別,乙個容器型別,元素型別是必要的,容器型別是可選的,預設為deque 型別。c 佇列queue是一種容器介面卡,它給予程式設計師一種先進先出 fifo 的資料結構。c 佇列queue類成員函式如下 back...

佇列Queue的基本操作

近期用到有關佇列 queue 的api,比如 add offer,element peek,remove poll等方法,有些功能類似的地方,在選擇使用時不免有所疑惑,這裡簡單區別一下 1 add 和offer 區別 add 和offer 都是向佇列中新增乙個元素。一些佇列有大小限制,因此如果想在乙...