广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python 队列Queue和Prior
  • 461
分享到

Python 队列Queue和Prior

队列PythonPrior 2023-01-31 01:01:32 461人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

python的Queue模块适用于多线程编程的FIFO实现。它可用于在生产者(producer)和消费者(consumer)之间线程安全(thread-safe)地传递消息或其它数据,因此多个线程可以共用同一个Queue实例。 F

python的Queue模块适用于多线程编程的FIFO实现。它可用于在生产者(producer)和消费者(consumer)之间线程安全(thread-safe)地传递消息或其它数据,因此多个线程可以共用同一个Queue实例。

FIFO: First in, First out.先进先出
LIFO: Last in, First out.后进先出

from queue import Queue#先进先出队列
from queue import PriorityQueue#优先级队列
import time
#队列:先进先出
q = Queue()#创建一个空队列,队列大小没有指定
#判断队列是是否为空
#当一个队列为空的时候如果再用get取则会堵塞,所以取队列的时候一般是用到
#get_nowait()方法,这种方法在向一个空队列取值的时候会抛一个Empty异常
#所以更常用的方法是先判断一个队列是否为空,如果不为空则取值


print(q.empty())
#队列的操作:存--put()  取--get()
q.put('page1')
q.put('page2')
q.put('page3')

print(q.empty())
#判断队列是否已经满了
print(q.full())

q1 = Queue(3)#在创建队列时,指定队列大小(表示该队列最多能存多少个元素)
q1.put('1')
q1.put('1')
q1.put('1')
print(q1.full())


q2 = Queue(3)
q2.put('1')
q2.put('2')
q2.put('3')
value = q2.get()#遵循的原则是:先进先出
print(value)
print(q2.full())

#存数据---阻塞
q3 = Queue(3)
q3.put(1)
q3.put(2)
q3.put(3)
# q3.put(4)#如果队列已经满了,等着(阻塞),一直等到队列腾出空间,然后把值存入到队列当中。

#取数据--阻塞
q4 = Queue(3)
q4.put(1)
value = q4.get()#1,此时队列为空
print('q4:',value)
# value = q4.get()#阻塞,直到队列当中有新值的时候,取出,结束阻塞。

#非阻塞
q5 = Queue(3)
q5.put(1)

#1.取
print('q5.qsize:',q5.qsize())#当前队列当中的元素个数
#方法1:
# while not q5.empty():
#     value2 = q5.get(block=False)#block为Ture,表示阻塞,否则为非阻塞。非阻塞就是“强取”
#     print('q5:',value2)
#方法2:
while q5.qsize()>0:
    value2 = q5.get(block=False)
    print('q5:',value2)

print('q5.qsize:',q5.qsize())
#存
q6 = Queue(3)

#方法1:
# print(q6.maxsize)#得到队列最大容量
# i = 0
# while i<q6.maxsize:
#     q6.put(i)
#     i+=1

#方法2:
while not q6.full():
    q6.put(1,block=False)#非阻塞


'''------------------------------其它的属性和方法-----------------------------'''
q7 = Queue(3)
# q7.get(block=False)
print(time.time())
try:
    q7.get(timeout=2)#阻塞时长
except:
    pass
print(time.time())

q8 = Queue(3)
# q8.get_nowait()#强取

'''------------------------------优先级队列-----------------------------'''
q = PriorityQueue()

# 格式:q.put((数字,值))
#特点:数字越小,优先级越高
q.put((1,'lori'))
q.put((-1,'jseon'))
q.put((10,'King'))

i = 0
while i<q.qsize():
    print(q.get())

--结束END--

本文标题: Python 队列Queue和Prior

本文链接: https://www.lsjlt.com/news/184232.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python 队列Queue和Prior
    Python的Queue模块适用于多线程编程的FIFO实现。它可用于在生产者(producer)和消费者(consumer)之间线程安全(thread-safe)地传递消息或其它数据,因此多个线程可以共用同一个Queue实例。 F...
    99+
    2023-01-31
    队列 Python Prior
  • Python 队列Queue和PriorityQueue解析
    目录Python 队列Queue和PriorityQueuePython的Queue模块优先级队列PriorityQueue的特点python 实现一个优先级队列pytho...
    99+
    2022-11-11
  • [python模块]队列queue
    一、队列queue队列queue 多应用在多线程场景,多线程访问共享变量。对于多线程而言,访问共享变量时,队列queue的线程安全的。因为queue使用了一个线程锁(pthread.Lock()),以及三个条件变量(pthread.cond...
    99+
    2023-01-31
    队列 模块 python
  • python消息队列Queue
    实例1:消息队列Queue,不要将文件命名为“queue.py”,否则会报异常“ImportError: cannot import name 'Queue'”#coding=utf-8 from multiprocessing impor...
    99+
    2023-01-31
    队列 消息 python
  • Python队列Queue超详细讲解
    目录queue模块简介queue.Queue(maxsize=0)queue.LifoQueue(maxsize=0)queue.PriorityQueue(maxsize=0)qu...
    99+
    2023-05-16
    Python队列Queue Python Queue
  • Python中的优先队列(priority queue)和堆(heap)
    目录队列和优先队列(Priority Queue)堆(heap)简介初始化构建堆堆的插入(节点上浮)堆的删除(节点下浮)堆的应用队列和优先队列(Priority Queue) 队列是...
    99+
    2022-11-11
  • ThinkPHP6 think-queue 消息队列(延迟队列)
    安装 composer require topthink/think-queue 配置 配置文件位于 config/queue.php [ 'default'=>'sync' //...
    99+
    2023-09-04
    php 数据库 mysql
  • TP5 queue队列详解
    thinkphp-queue 笔记 前言一 代码示例 1.1 安装 thinkphp-queue1.2 搭建消息队列的存储环境1.3 配置消息队列的驱动1.4 消息的创建与推送1.5 消息的消费与删除1.6 ...
    99+
    2023-08-31
    php
  • think\queue 消息队列
    简介 TP 中使用 think-queue 可以实现普通队列和延迟队列。 think-queue 是thinkphp 官方提供的一个消息队列服务,它支持消息队列的一些基本特性: 消息的发布,获取,执行...
    99+
    2023-09-10
    redis php thinkphp
  • JAVA队列( Queue ) 详解
    队列(Queue)是一种常见的数据结构,它遵循先进先出(First-In-First-Out,FIFO)的原则。在队列中,新元素插入...
    99+
    2023-09-15
    Java
  • Java优先队列 priority queue
    目录1.优先队列概念2.二叉堆(Heap)完全二叉树和满二叉树堆的重要操作1.优先队列概念 优先队列(priority queue)是一种特殊的数据结构。队列中每一个元素都被分配到一...
    99+
    2022-11-12
  • 详解python数据结构之队列Queue
    目录一、前言二、Queue的基本格式三、入队列函数 en_queue四、删除数据函数 de_queue一、前言 队列Queue是一种先进先出(FIFO,First In First ...
    99+
    2022-11-12
  • thinkphp6、thinkphp5.0 使用think-queue实现普通队列和延迟队列
    何为异步消息队列: 所谓消息队列,就是一个以队列数据结构为基础的一个实体,这个实体是真实存在的,比如程序中的数组,数据库中的表,或者redis等等,都可以。 异步队列的作用: 个人认为消息队列的主...
    99+
    2023-08-31
    redis php
  • C++中队列queue怎么用
    这篇文章主要讲解了“C++中队列queue怎么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++中队列queue怎么用”吧!一、定义queue是一种容器转换器模板,调用#include&...
    99+
    2023-06-29
  • Python线程之线程安全的队列Queue
    目录一、什么是队列?二、队列基操 入队/出队/查队列状态三、Queue是一个线程安全的类一、什么是队列? 像排队一样,从头到尾排成一排,还可以有人继续往后排队,这就是队列。 这里学委...
    99+
    2022-11-13
  • thinkphp6使用think-queue怎么实现普通队列和延迟队列
    本文小编为大家详细介绍“thinkphp6使用think-queue怎么实现普通队列和延迟队列”,内容详细,步骤清晰,细节处理妥当,希望这篇“thinkphp6使用think-queue怎么实现普通队列和延迟队列”文章能帮助大家解决疑惑,下...
    99+
    2023-06-30
  • python中的queue队列类型及函数用法
    目录python queue队列类型及函数1.队列的种类2.队列函数python 队列类及其方法1.Python的队列类型2.队列对象(适用Queue、LifoQueue和Prior...
    99+
    2022-11-11
  • 关于Python中几种队列Queue用法区别
    目录python中使用到的队列模块大致有三个:1、from queue import Queue2、from multiprocessing import Queue3、from m...
    99+
    2023-05-18
    Python 队列 Python Queue
  • 【PHP】TP6 queue队列基本使用
    TP6 queue队列基本使用 关于队列的模式 sync 同步执行 2:database 配合数据库完成 3:redis 配合redis完成 小提醒:异步执行 最好使用redis作为配合 直接开始上代...
    99+
    2023-09-10
    php 数据库 thinkphp6 tp6队列
  • Python中线程安全队列Queue的示例分析
    小编给大家分享一下Python中线程安全队列Queue的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、什么是队列?像排队一样,从头到尾排成一排,还可以有人继续往后排队,这就是队列。这里学委想说的是Queue这个...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作