02 執行緒佇列
阿新 • • 發佈:2019-01-14
import queue # 一:先進先出佇列 # q = queue.Queue(3) #先進先出 fifo first in first out # q.put(1) # q.put(2) # # print('當前佇列內容長度',q.qsize()) # q.put(3) # print('檢視佇列是否滿了',q.full()) # try: # q.put_nowait(4) # 報錯queue.Full # except Exception: # print('佇列滿了') # print(q.get()) # print(q.get()) # print('檢視佇列是否為空',q.empty()) # print(q.get()) # print('檢視佇列是否為空',q.empty()) # try: # q.get_nowait() # queue.Empty # except Exception: # print('佇列空了') # 二 先進後出佇列,或者後進先出,類似於棧 # q = queue.LifoQueue(3) # # q.put(1) # q.put(2) # q.put(3) # # print(q.get()) # print(q.get()) # print(q.get()) #優先順序佇列 q = queue.PriorityQueue(5) # q.put((5,'alex')) # q.put((2,'寶寶')) # q.put((7,'大力')) # q.put((5,(2,3))) q.put((5,(2,3))) #如果說值裡面的元素是數字型別,那麼當兩個值的優先順序相同時,比較的是兩個值的大小,小的優先被取出來 #如果元素是字串,那麼依次比較每個字母的ascii表中的位置,小的優先被取出來 # q.put((2,{'x':3})) # q.put((5,(1,2))) q.put((5,(2,2,3))) # q.put((2,'zalex')) # q.put((-1,'yubing')) # q.put((2,{'k':666})) #如果優先順序數字相同,如果資料型別不同會報錯 # q.put((2,('a','b'))) # q.put((1,(1,2))) # q.put((3,(1,2))) # q.put((-10,(1,2))) print(q.get()) print(q.get()) print(q.get()) print(q.get()) print(q.get())