队列 一种数据结构(多线程利器)
生活随笔
收集整理的這篇文章主要介紹了
队列 一种数据结构(多线程利器)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
# 隊列 一種數(shù)據(jù)結(jié)構(gòu)(多線程利器)
import queue # 導(dǎo)入對列模塊
q = queue.Queue() # 創(chuàng)建一個對列對象,先進(jìn)先出
# q = queue.Queue(3) # 創(chuàng)建一個對列對象,3表示隊列中只能有3個值
# q = queue.LifoQueue() # 創(chuàng)建一個對列對象,后進(jìn)先出
# q = queue.PriorityQueue # 創(chuàng)建一個對列對象,以優(yōu)先級來出,優(yōu)先級越低的先出
q.put(12) # 向?qū)α兄蟹湃胫?/span>
q.put('hello')
q.put({'name': 'alex'})
q.put([1, 2], block=False) # 加了False或block=False參數(shù),表示隊列滿了情況再put就會報錯,相當(dāng)于q.put_nowait([1, 2])# 優(yōu)先級模式的隊列加入值
# q.put([1, 12]) # 向?qū)α兄蟹湃胫?列表的第一個值為優(yōu)先級數(shù)字
# 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()函數(shù)向任務(wù)已經(jīng)完成的隊列發(fā)送一個信號
# q.join() # 等到隊列為空,再執(zhí)行別的操作while True:data = q.get() # 如果在get()中加了block=False,或False,當(dāng)隊列為空再取值時會報錯,相當(dāng)于q.get_nowait()print(data)print('-------------')# 12# -------------# hello# -------------# {'name': 'alex'}# -------------# 這時程序還沒結(jié)束,在q.get()這里等待其它線程往里加入數(shù)據(jù)來取出
?
轉(zhuǎn)載于:https://www.cnblogs.com/dangrui0725/p/9498632.html
總結(jié)
以上是生活随笔為你收集整理的队列 一种数据结构(多线程利器)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HashMap源码学习
- 下一篇: 洛谷P2342-叠积木