49.Python进阶_队列01_先进先出队列

Python的Quene模块中提供了同步的,线程安全的队列类,包括 -

  • FIFO(先进先出)队列Queue,
  • LIFO(先进后出)队列LifoQueue,
  • 优先级队列PriorityQueue

这些队列都实现了锁原语,能够在多线程中直接使用,可以使用列表来实现线程间同步;

初始化Queue()对象时,如果(q=Queue(),若括号中没有指定最大可接受的消息数量,或者数量为负值,那么代表可接受的消息数量没有上限)

队列的方法:

   put(self,item,block=True,time=None)     #给队列中添加数据
  get(self,block=True,timeout=None)     #从队列中获取数据
  • 如果队列满了,默认一直等待,
  1. timeout时间设置等待时间,后超过时间会报错,
  2. block设置为False就会不等待;和put_nowait方法一样

并且超过设置数量或者取出数量后都会报错;

基本FIFO队列(先进先出)

FIFO即First in First Out,先进先出。Queue提供了一个基本的FIFO容器,使用方法很简单,maxsize是个整数,指明了队列中能存放的数据个数的上限。一旦达到上限,插入会导致阻塞,直到队列中的数据被消费掉。如果maxsize小于或者等于0,队列大小没有限制。

from queue import Queue

q = Queue(5)  #创建队列对象

for i in range(5):

    q.put(i)  #给队列中添加数据

while not q.empty(): #判断是否为空
    print(q.get())#从队列中取出数据

运行结果:

0
1
2
3
4

如果队列中数据已满,继续添加数据会报错,同样如果已空,继续取数据也会报错;

from queue import Queue
q = Q
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python的路线可以根据个人的兴趣和需求有所不同,但以下是一些常见的主题和技能,可以帮助你在Python一步深入学习: 1. 数据结构与算法:学习常见的数据结构(如列表、字典、集合、堆栈、队列等)和算法(如排序、搜索、图算法等),以提高代码效率和解决复杂问题的能力。 2. 函数式编程:深入了解函数式编程的概念和技巧,学习使用Lambda函数、高函数、生成器等来编写更简洁、可维护的代码。 3. 并发与并行编程:学习如何使用多线程、多程和协程来处理并发任务,提高程序的执行效率和响应性。 4. 数据库编程:掌握使用Python操作关系型数据库(如MySQL、PostgreSQL)和非关系型数据库(如MongoDB、Redis)的技巧,以便于存储和查询数据。 5. Web开发:学习使用Python的Web框架(如Django、Flask)来构建Web应用程序,包括处理HTTP请求、数据库操作、用户认证等。 6. 数据分析与机器学习:学习使用Python的数据分析库(如Pandas、NumPy)和机器学习库(如Scikit-learn、TensorFlow)来处理和分析数据,行预测建模和模型评估。 7. 网络编程:了解网络编程的基本概念,学习使用Python的socket库行网络通信,包括TCP/IP和UDP协议的编程。 8. 可视化:使用Python的可视化库(如Matplotlib、Seaborn)来绘制图表和展示数据,以便更好地理解和传达数据分析的结果。 除了以上主题,还可以根据自己的兴趣和实际需求选择其他相关领域行深入学习,例如自然语言处理、图像处理、区块链开发等。记得不断练习和实践,通过阅读文档、参与开源项目或者完成小项目来提升自己的技能水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值