queue模塊的基本用法html
https://www.cnblogs.com/chengd/articles/7778506.htmlpython
模塊實現了3種類型的隊列,區別在於隊列中條目檢索的順序不一樣。在FIFO隊列中,按照先進先出的順序檢索條目。在LIFO隊列中,最後添加的條目最早檢索到(操做相似一個棧)。在優先級隊列中,條目被保存爲有序的(使用heapq模塊)而且最小值的條目被最早檢索。async
文檔地址: https://docs.python.org/3/library/asyncio-queue.htmlspa
http://www.javashuo.com/article/p-zpyeuhvt-go.html線程
要回答這個問題咱們首先看看在流水線上的案列,若是人的速度很慢,機器的速度比人的速度快不少,就會形成,機器生產的東西沒有及時處理,越積越多,形成阻塞,影響生產。code
打個比方若是出現人的速度跟不上機器速度怎麼辦,這個時候咱們就須要第三方,監管人員(任務隊列)把機器生產的東西,放在一個地方,(隊列),而後分配給每一個用戶,有條不理的執行。htm
import queue q=queue.Queue() q.empty() Out[123]: True #指定隊列大小 q=queue.Queue(1) q.put('a') q.full() Out[127]: True q Out[128]: <queue.Queue at 0x1adf0e2ef98> dir(q) Out[129]: ['all_tasks_done', 'empty', 'full', 'get', 'get_nowait', 'join', 'maxsize', 'mutex', 'not_empty', 'not_full', 'put', 'put_nowait', 'qsize', 'queue', 'task_done', 'unfinished_tasks'] q.get() Out[130]: 'a' q.put('b') q.get() Out[132]: 'b' q.qsize() Out[133]: 0
import queue q=queue.Queue() q.put('a') q.put('b') q.qsize() Out[6]: 2 #put(放一個元素進隊列) get(從隊列中取出一個元素) 先進先出原則 q.get() Out[8]: 'a' #get_nowait(當即取出一個元素,不等待) #佔位 #put_nowait(當即放入一個元素,不等待) #佔位 #join(阻塞調用線程,直到隊列中的全部任務被處理掉) #佔位 #task_done(在完成一項任務以後,向任務已經完成的隊列發送一個信號) #佔位
按照優先級出 參考上面博客例子blog
後進先出隊列