队列 一种数据结构(多线程利器)
生活随笔
收集整理的這篇文章主要介紹了
队列 一种数据结构(多线程利器)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
# 隊列 一種數據結構(多線程利器)
import queue # 導入對列模塊
q = queue.Queue() # 創建一個對列對象,先進先出
# q = queue.Queue(3) # 創建一個對列對象,3表示隊列中只能有3個值
# q = queue.LifoQueue() # 創建一個對列對象,后進先出
# q = queue.PriorityQueue # 創建一個對列對象,以優先級來出,優先級越低的先出
q.put(12) # 向對列中放入值
q.put('hello')
q.put({'name': 'alex'})
q.put([1, 2], block=False) # 加了False或block=False參數,表示隊列滿了情況再put就會報錯,相當于q.put_nowait([1, 2])# 優先級模式的隊列加入值
# q.put([1, 12]) # 向對列中放入值,列表的第一個值為優先級數字
# q.put([5, 'hello'])
# q.put([3, {'name': 'alex'}])# queue中的方法
print(q.qsize()) # 獲得隊列中有幾個值
print(q.empty()) # 隊列是否為空
print(q.full()) # 隊列是否已滿# q.task_done() # 在完成一項式作之后,q.task_done()函數向任務已經完成的隊列發送一個信號
# q.join() # 等到隊列為空,再執行別的操作while True:data = q.get() # 如果在get()中加了block=False,或False,當隊列為空再取值時會報錯,相當于q.get_nowait()print(data)print('-------------')# 12# -------------# hello# -------------# {'name': 'alex'}# -------------# 這時程序還沒結束,在q.get()這里等待其它線程往里加入數據來取出
?
轉載于:https://www.cnblogs.com/dangrui0725/p/9498632.html
總結
以上是生活随笔為你收集整理的队列 一种数据结构(多线程利器)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HashMap源码学习
- 下一篇: 洛谷P2342-叠积木