[TOC]
一、隊列
queue隊列:使用
import queue
,用法與進程Queue一樣
實際上這里就是Python解釋器中的一種數(shù)據(jù)結(jié)構(gòu)中的類型——隊列
這里直接使用隊列也可以。 如果還要類似計數(shù)器的功能可以加上task_done和join
- FIFO 先進先出
- LIFO 后進先出
- 優(yōu)先級隊列
二、先進先出(FIFO)
class queue.Queue(maxsize=0)
### 普通隊列
q = queue.Queue()
### 沒有計數(shù)器進行阻塞 FIFO
q.put("first")
q.put("second")
q.put("third")
print(q.get())
print(q.get())
print(q.get())
### 普通隊列
q = queue.Queue()
### 加了計數(shù)器進行阻塞的隊列 FIFO
q.put(1) # +1
q.put(2) # +1
q.put(3) # +1
print(q.get())
q.task_done() # -1
print(q.get())
q.task_done() # -1
print(q.get())
q.task_done() # -1
q.join() # 判斷計數(shù)器是否為0,不為零則會阻塞
三、后進先出
class queue.LifoQueue(maxsize=0)
### 棧
q = queue.LifoQueue()
### 沒有計數(shù)器進行阻塞 LIFO
q.put(1) # +1
q.put(2) # +1
q.put(3) # +1
print(q.get())
print(q.get())
print(q.get())
### 棧
q = queue.LifoQueue()
### 加了計數(shù)器進行阻塞的隊列 LIFO
q.put(1) # +1
q.put(2) # +1
q.put(3) # +1
print(q.get())
q.task_done() # -1
print(q.get())
q.task_done() # -1
print(q.get())
q.task_done() # -1
q.join() # 判斷計數(shù)器是否為0,不為零則會阻塞
四、優(yōu)先級隊列
class queue.PriorityQueue(maxsize=0)
數(shù)字越小優(yōu)先級越高
### 設(shè)置優(yōu)先級的隊列
q = queue.PriorityQueue()
# put進入一個元組,元組的第一個元素是優(yōu)先級(通常是數(shù)字,也可以是非數(shù)字之間的比較),數(shù)字越小優(yōu)先級越高
q.put((20,'a'))
q.put((10,'b'))
q.put((30,'c'))
print(q.get())
print(q.get())
print(q.get())
# 數(shù)字越小優(yōu)先級越高
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
