消息队列分类

1.先进先出

2.后进先出

3.优先级队列

4.双向队列

1.先进先出

import queue
q = queue.Queue(2) #队列最大长度
q.put(11)
q.put(22)
print(q.qsize()) #获取队列的个数
print(q.get())
print(q.get())
#先进先出队列
#put放数据,block是否阻塞,timeout = 阻塞时的超时时间
#get 取数据,默认阻塞。block是否阻塞,timeout阻塞时的超时时间
#队列最大长度
#qsize()真实个数
#maxsize 支持最大个数
#q.get()执行完成后,执行q.task_done()告诉队列取值完成
#join,task_done ,阻塞进程,当队列中任务执行完毕之后,不再阻塞
#q = queue.Queue(2) #可以加参数,表示队列最大个数
#q.put(33,timeout=2) #阻塞2秒,如果2s后还是无法插入队列,然后直接报错
#q.put(33,block=False) #block=False 表示不阻塞,如果不能插入队列,然后直接报错

out:

2
11
22

2.后进先出

import queue
q = queue.LifoQueue()
q.put(123)
q.put(456)
print(q.get())

out:

456
123

3.优先级队列

数字越小,优先级越高

import queue
q = queue.PriorityQueue()
q.put((0,"test1"))
q.put((3,"test3"))
q.put((4,"test4"))
print(q.get())
print(q.get())
print(q.get())

out:

(0, 'test1')
(3, 'test3')
(4, 'test4')

数字越小,优先级越高

4.双向队列

import queue
q = queue.deque()
q.append(123)
q.append(444)
q.appendleft(555)
print(q.pop())
print(q.pop())
print(q.popleft())

out:

444
123
555

python - 消息队列的更多相关文章

  1. python消息队列snakemq使用总结

    Python 消息队列snakemq总结 最近学习消息总线zeromq,在网上搜了python实现的消息总线模块,意外发现有个消息队列snakemq,于是拿来研究一下,感觉还是很不错的,入手简单使用也 ...

  2. Python消息队列工具 Python-rq 中文教程

    原创文章,作者:Damon付,如若转载,请注明出处:<Python消息队列工具 Python-rq 中文教程>http://www.tiangr.com/python-xiao-xi-du ...

  3. Python消息队列(RabbitMQ)

    RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用.可维护多个队列,可实现消息的一对一和广播等方式发送 RabbitMQ是一个开源的AMQP实现 ...

  4. python消息队列Queue

    实例1:消息队列Queue,不要将文件命名为"queue.py",否则会报异常"ImportError: cannot import name 'Queue'" ...

  5. python 消息队列-rabbitMQ 和 redis介绍使用

    1.rabbitMQ 与ptyhon 进程queue 区别.进程queue 主要用户Python父子进程之间或者统一进程不同子进程.rabbit可以用户不同语言之前的相互交流,socket可以实现同样 ...

  6. python之消息队列

    引言 你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用.通讯的问题而苦恼.挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题.消息服务擅 ...

  7. Python进阶【第二篇】多线程、消息队列queue

    1.Python多线程.多进程 目的提高并发 1.一个应用程序,可以有多进程和多线程 2.默认:单进程,单线程 3.单进程,多线程 IO操作,不占用CPU python的多线程:IO操作,多线程提供并 ...

  8. python 操作消息队列

    图示 其中P指producer,即生产者:C指consumer,即消费者.中间的红色表示消息队列,实例中表现为HELLO队列. 往队列里插入数据前,查看消息队列 $sudo rabbitmqctl l ...

  9. python【第十一篇】消息队列RabbitMQ、缓存数据库Redis

    大纲 1.RabbitMQ 2.Redis 1.RabbitMQ消息队列 1.1 RabbitMQ简介 AMQP,即Advanced Message Queuing Protocol,高级消息队列协议 ...

随机推荐

  1. [Leetcode][019] Remove Nth Node From End of List (Java)

    题目在这里: https://leetcode.com/problems/remove-nth-node-from-end-of-list/ [标签] Linked List; Two Pointer ...

  2. uva 10125 - Sumsets

    题意: 输入n,然后输入n个数字,,要在这n个数字中找出a,b,c,d..满足a,b,c,d是不同元素,并且a + b + c = d...求出最大的d 直接暴力时间复杂度为O(n^4)..会超时.. ...

  3. [每日一题] OCP1z0-047 :2013-07-25 权限――角色与对象权限

    有疑问可以去itpub讨论:http://www.itpub.net/thread-1804842-1-1.html 按题意,操作如下: 1.创建一个角色r1 sys@OCM> create r ...

  4. tomcat启动报错总结

    错误一 webapps\ROOT does not exist or is not a readable directory 错误原因:在tomcat的server.xml的context中配置了不存 ...

  5. java并发编程_基本模块构建

    读<java并发编程实战>第五章学习记录:该章节主要介绍一些并发编程中一些基本的构建模块.如并发容器和并发工具类(闭锁和栅栏)以及一些需要注意的情况 并发容器 1. ConcurrentH ...

  6. Java学习笔记--HashMap中使用object做key的问题【转】

    在HashMap中,如果需要使用多个属性组合作为key,可以将这几个属性组合成一个对象作为key.但是存在的问题是,要做get时,往往没办法保存当初put操作时的key object的referenc ...

  7. cf D. Dima and Hares

    http://codeforces.com/contest/358/problem/D 题意:ai代表相邻的两个野兔都没有吃食物情况下的快乐系数,bi代表的是在相邻的两个野兔中有一个吃到食物的快乐系数 ...

  8. 勾选checkbox之后,button按钮可用

    js:function chkClick() {    if (document.getElementById("chkBox").checked == true) {       ...

  9. 【转】深圳FAE,想拿高薪还缺什么?

    原文网址:http://www.eefocus.com/KTHR_IC/blog/11-05/222793_e04c8.html KT老胡您好! 我07年本科毕业在一家医疗民营企业从事了3年多的嵌入式 ...

  10. bzoj3629[JLOI2014]聪明的燕姿

    http://www.lydsy.com/JudgeOnline/problem.php?id=3629 搜索. 我们知道: 如果$N=\prod\limits_{i=1}^{m}p_{i}^{k_{ ...