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
后进先出队列