在 python线程队列Queue-FIFO  文章中已经介绍了 先进先出队列Queue,而今天给大家介绍的是第二种:线程队列LifoQueue-LIFO,数据先进后出类型,两者有什么区别呢?

一.队列Queue分类:

1.线程队列Queue — FIFO(先进先出队列),即哪个数据先存入,取数据的时候先取哪个数据,同生活中的排队买东西;

2.线程队列LifoQueue — LIFO(先进后出队列),即哪个数据最后存入的,取数据的时候先取,同生活中手枪的弹夹,子弹最后放入的先打出;

3.线程队列PriorityQueue — PriorityQueue(优先级队列),即存入数据时候加入一个优先级,取数据的时候优先级最高的取出;

今天只对第二种线程队列Queue(LIFO)讲解,最后一种留到下一篇文章在做详细讲解!

二.先进后出队列LifoQueue简介

如上面所述,与前一篇的Queue相反,最后存入的数据最先取出,最先存入的数据最后取出,如下图所示:

如果说FIFO是吃什么拉什么,那么LIFO就是吃什么吐什么,先吃的后吐,后吃的先吐~~真是重口味呀!

三.先进后出队列LifoQueue函数介绍

函数不做过多介绍了,已经在 python线程队列Queue-FIFO 有了详细讲解,两者都属于Queue,函数都一样!

四.先进后出队列Queue-LIFO使用

# !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:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
""" import queue
import threading
import time # 可以设置队列的长度 q=queue.LifoQueue(5),意味着队列中最多存放5个元素,当队列满的时候自动进入阻塞状态
q=queue.LifoQueue()
def put():
for i in range(10):
q.put(i)
print("数据%d被存入到队列中" % i)
q.join()
print('ok') def get():
for i in range(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()

输出结果:

数据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

技术交流、商务合作请直接联系博主
扫码或搜索:猿说python
猿说python
微信公众号 扫一扫关注

python 线程队列LifoQueue-LIFO(36)的更多相关文章

  1. python 线程队列PriorityQueue(优先队列)(37)

    在 线程队列Queue / 线程队列LifoQueue 文章中分别介绍了先进先出队列Queue和先进后出队列LifoQueue,而今天给大家介绍的是最后一种:优先队列PriorityQueue,对队列 ...

  2. python线程队列Queue-FIFO(35)

    之前的文章中讲解很多关于线程间通信的知识,比如:线程互斥锁lock,线程事件event,线程条件变量condition 等等,这些都是在开发中经常使用的内容,而今天继续给大家讲解一个更重要的知识点 — ...

  3. python 线程队列、线程池、全局解释器锁GIL

    一.线程队列 队列特性:取一个值少一个,只能取一次,没有值的时候会阻塞,队列满了,也会阻塞 queue队列 :使用import queue,用法与进程Queue一样 queue is especial ...

  4. python线程+队列(queue)

    ---恢复内容开始--- python的线程学习 用处 pocpiliang脚本的编写 函数式:调用 _thread 模块中的start_new_thread()函数来产生新线程.语法如下: _thr ...

  5. 045.Python线程队列

    线程队列 1 基本语法和用法 put 往线程队列里防止,超过队列长度,直接阻塞 get 从队列中取值,如果获取不到,直接阻塞 put_nowait: 如果放入的值超过队列长度,直接报错(linux) ...

  6. python线程池ThreadPoolExecutor(上)(38)

    在前面的文章中我们已经介绍了很多关于python线程相关的知识点,比如 线程互斥锁Lock / 线程事件Event / 线程条件变量Condition 等等,而今天给大家讲解的是 线程池ThreadP ...

  7. Python进阶----异步同步,阻塞非阻塞,线程池(进程池)的异步+回调机制实行并发, 线程队列(Queue, LifoQueue,PriorityQueue), 事件Event,线程的三个状态(就绪,挂起,运行) ,***协程概念,yield模拟并发(有缺陷),Greenlet模块(手动切换),Gevent(协程并发)

    Python进阶----异步同步,阻塞非阻塞,线程池(进程池)的异步+回调机制实行并发, 线程队列(Queue, LifoQueue,PriorityQueue), 事件Event,线程的三个状态(就 ...

  8. Python线程优先级队列(Queue)

    Python的Queue模块中提供了同步的.线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列 LifoQueue,和优先级队列PriorityQueue.这些队列都实 ...

  9. python全栈开发 * 线程队列 线程池 协程 * 180731

    一.线程队列 队列:1.Queue 先进先出 自带锁 数据安全 from queue import Queue from multiprocessing import Queue (IPC队列)2.L ...

随机推荐

  1. php grpc请求go,报Yac::get(): Unserialization failed

    大概说下yac是个啥东西..看鸟哥的博客 Yac 是为PHP实现的一个基于共享内存, 无锁的内容Cache Yac的两个应用场景:1.让PHP进程之间共享一些简单的数据2.高效地缓存一些页面结果 假设 ...

  2. P5049 旅行(数据加强版)(基环树)

    做法 把环找出来,如果在环上(u,v)两点的时候,u的其他子树都走完了,v上第一个还有除v存在的子树没走完的 祖先,祖先的最小子节点小于v,则回去 Code #include<bits/stdc ...

  3. 比较实用的Java工具类

    一. org.apache.commons.io.IOUtils closeQuietly:关闭一个IO流.socket.或者selector且不抛出异常,通常放在finally块 toString: ...

  4. 小程序wepy购物车的逻辑

    <!-- 剩余可销售商品数量 大于 0,且购买未达上限--> <view wx:if="{{(detaildata.boughtNum < detaildata.bu ...

  5. 小程序中嵌套的h5页面设置分享转发

    场景描述:当在小程序中打开h5页面时,希望小程序的转发出去的标题,图片,跳转link可以通过h5通信实现自定义. 实现方式:通过h5给小程序通信,发送标题,图片,跳转link等信息,让小程序设置分享. ...

  6. Kafka(一) —— 基本概念及使用

    一.安装&启动 安装Kafka(使用内置Zookeeper) 在Kafka官网下载安装包kafka_2.11-1.0.0.tgz #### 解压 tar zxvf kafka_2.11-1.0 ...

  7. tensorflow中的函数获取Tensor维度的两种方法:

    获取Tensor维度的两种方法: Tensor.get_shape() 返回TensorShape对象, 如果需要确定的数值而把TensorShape当作list使用,肯定是不行的. 需要调用Tens ...

  8. 类别不平衡问题之SMOTE算法(Python imblearn极简实现)

    类别不平衡问题类别不平衡问题,顾名思义,即数据集中存在某一类样本,其数量远多于或远少于其他类样本,从而导致一些机器学习模型失效的问题.例如逻辑回归即不适合处理类别不平衡问题,例如逻辑回归在欺诈检测问题 ...

  9. php异步处理

    <?php namespace Index\Controller; use Core\Controller; class test extends Controller { public fun ...

  10. Nfs固定端口 nfs 端口公网映射