• python


    消息队列分类

    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

  • 相关阅读:
    docker容器导出导入
    docker容器stop不了问题的处理
    weblogic server 后台命令启动
    查看Linux系统版本的命令
    Oracle12c修改字符集
    Oracle导出导入时客户端字符集设置
    centos7 防火墙开放端口
    docker仓库安装
    spring boot打war包的修改内容
    连接谷歌gee
  • 原文地址:https://www.cnblogs.com/pangguoping/p/5678500.html
Copyright © 2020-2023  润新知