• 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

  • 相关阅读:
    MHA-Failover(GTID,Auto_Position=0)
    PXC中的GTIDs
    MySQL备份与恢复
    MySQL复制框架
    pt-table-checksum检测不出主从差异处理
    MHA-Failover可能遇到的坑
    MHA-手动Failover流程(传统复制&GTID复制)
    MSSQL-SELECT&UPDATE动作要申请的锁
    sybench压测下模拟误truncate数据恢复
    gtid_executed和gtid_purged变量是如何初始化的
  • 原文地址:https://www.cnblogs.com/pangguoping/p/5678500.html
Copyright © 2020-2023  润新知