一、佇列和列表的區別
1.佇列是先進先出,列表可以讀取某個指定資料
2.佇列如果將儲存的資料都讀完就結束,列表可以反覆讀取
例如:#列表指定讀取某個 資料
a_list = [1,2,3,4]
print(a_list[2])
import queue
#先進先出
a_queue = queue.queue()
for i in range(1,5):
a_queue.put(i)
while a_queue.qsize()>0:
print(a_queue.get())
二、具體介紹一下queue
在使用queue的時候要先引入queue模組,建立物件~
其中queue可以建立出三種物件分別是
1.先進先出行queue(maxsize = ?)
import queue
a_queue =queue.queue()
a_queue.put("1")
a_queue.put("2")
print(a_queue.get(),a_queue.get())
>>>1 2
通過上面的例子我們能發現,put 方法是往佇列放資料,但是佇列跟列表不同取完之後資料就沒有了,如果取的資料大於列表存放的資料就會卡住這時候有兩種解決辦法,第一種呼叫get_nowait()方法,這時候就會報異常queue.empty,第二種就是從get自身解決,get(block = false),預設的時候block是true。
2.後進先出lifequeue()是個縮寫是last in first out
import queue
a_queue =queue.lifoqueue()
for i in range(2):
a_queue.put(i)
while 0
print(a_queue.get())
3.priorityqueue可以理解成vip,看你的心情讓那先出就先出
import queue
a_queue =queue.priorityqueue()
a_queue.put((3,"d"))
a_queue.put((1,"a"))
a_queue.put((2,"c"))
while a_queue.qsize()>0:
print(a_queue.get())
(1, 'a')
(2, 'c')
(3, 'd')
三、利用queue和多執行緒寫乙個生產者消費者
import queue
import threading,time
q= queue.queue(maxsize=10)
def producer():
for i in range(10):
q.put("生產第%s骨頭"%i)
time.sleep(0.1)
def consumer(name):
while true:
try:
print(name,"吃掉了【%s】"%q.get(timeout=0.4))
except:
break
t = threading.thread(target=producer)
c = threading.thread(target=consumer,args=("小黃",))
c1 = threading.thread(target=consumer,args=("小hei",))
t.start()
c.start()
c1.start()
python兩點間的距離 巧用兩點間距離公式求最值
在平面直角座標系中,任意兩點a x1,y1 b x2,y2 的距離是ab x1 x2 y1 y2 也可以寫成ab x1 x2 y1 y2 原理很簡單,以ab為斜邊,構造直角三角形,使其兩直角邊分別與座標軸平行,利用勾股定理可得。在學習過程中,不僅僅知道點座標求距離,同時更需要將某個平方和看作兩點間的...
如何計算兩點之間距離
如何計算兩點之間距離 路線規劃提供了獲取路線距離的方法,見mkrouteplan 類的 getdistance 方法。如果是計算任意兩點的距離,有兩種方法 一種利用勾股定理計算,適用於兩點距離很近的情況 一種按標準的球面大圓劣弧長度計算,適用於距離較遠的情況。static double def pi...
如何打造天呈集團品牌關鍵兩點
中國著名品牌實戰專家沈菏生先生認為 打造成功的企業品牌,必須要擺脫對產品品牌的過度依賴,樹立品牌就是企業的意識,將品牌要素與企業特徵相結合,使企業價值觀 文化 使命 歷史傳承 創新 研發 品質保證綜合能力等成為品牌內涵一部分,企業特徵是獨特是唯一的,通常也是競爭對手無法複製的,因此由企業特徵驅動的品...