在 python线程队列Queue-FIFO 文章中已经介绍了 先进先出队列Queue,而今天给大家介绍的是第二种:线程队列LifoQueue-LIFO,数据先进后出类型,两者有什么区别呢?
从网站建设到定制行业解决方案,为提供成都做网站、网站制作服务体系,各种行业企业客户提供网站建设解决方案,助力业务快速发展。创新互联建站将不断加快创新步伐,提供优质的建站服务。
1.线程队列Queue — FIFO(先进先出队列),即哪个数据先存入,取数据的时候先取哪个数据,同生活中的排队买东西;
2.线程队列LifoQueue — LIFO(先进后出队列),即哪个数据最后存入的,取数据的时候先取,如同打台球,先进洞的球最后取出,最后进洞的球最先拿出;
3.线程队列PriorityQueue — PriorityQueue(优先级队列),即存入数据时候加入一个优先级,取数据的时候优先级最高的取出;
今天只对第二种线程队列Queue(LIFO)讲解,最后一种留到下一篇文章在做详细讲解!
如上面所述,与前一篇的Queue相反,最后存入的数据最先取出,最先存入的数据最后取出,如下图所示:
如果说FIFO是吃什么拉什么,那么LIFO就是吃什么吐什么,先吃的后吐,后吃的先吐~~真是重口味呀!
函数不做过多介绍了,已经在 python线程队列Queue-FIFO 有了详细讲解,两者都属于Queue,函数都一样!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | # !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:何以解忧 @Blog(个人博客地址): shuopython.com @WeChat Official Account(微信公众号):猿说python @Github:www.github.com
@File:python_LifoQueue.py @Time:2019/11/29 15:25
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累! """
importqueue importthreading importtime
# 可以设置队列的长度 q=queue.LifoQueue(5),意味着队列中最多存放5个元素,当队列满的时候自动进入阻塞状态 q=queue.LifoQueue() defput(): foriinrange(10): q.put(i) print("数据%d被存入到队列中"%i) q.join() print('ok')
defget(): foriinrange(10): value=q.get() print("数据%d从队列中取出"%value) q.task_done()
t1=threading.Thread(target=put,args=()) t1.start() t2=threading.Thread(target=get,args=()) t2.start() |
输出结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 数据0被存入到队列中 数据1被存入到队列中 数据2被存入到队列中 数据3被存入到队列中 数据4被存入到队列中 数据5被存入到队列中 数据6被存入到队列中 数据7被存入到队列中 数据8被存入到队列中 数据9被存入到队列中 数据9从队列中取出 数据8从队列中取出 数据7从队列中取出 数据6从队列中取出 数据5从队列中取出 数据4从队列中取出 数据3从队列中取出 数据2从队列中取出 数据1从队列中取出 数据0从队列中取出 ok |
1.python线程队列Queue-FIFO
2.python 异常处理
3.python __name__ == ‘__main__’详细解释
4.python 不定长参数 *argc,**kargcs
转载请注明:猿说Python » python线程队列LifoQueue-LIFO