zoukankan      html  css  js  c++  java
  • 队列的三种形式

    queue.Queue() #先入先出
    queue.LifoQueue() #后入先出
    queue.priorityQueue() #根据优先级进行选取


    # 1.
    import queue, threading, time

    p = queue.Queue() #先入先出

    p.put(1)
    p.put(2)
    p.put(3)

    print(p.get(block=False,timeout=1)) #block = False 时,当取不到时不会发生错误, timeout 等待一秒钟内再来取值
    print(p.get(block=False,timeout=1))
    print(p.get(block=False,timeout=1))

    举例:
    def p_get():
    print(p.get(timeout=1))

    def p_put():
    time.sleep(0.5)
    p.put(4)
    p_pt = threading.Thread(target=p_put)
    p_pt.start()
    p_gt = threading.Thread(target=p_get)
    p_gt.start()

    这里没有发生报错,因为在0.5秒时,放入一个4, 因此可以取出
    # 2.
    import queue
    p = queue.LifoQueue()  #后入先出

    p.put(1)
    p.put(2)
    p.put(3)

    p.get()
    p.get()
    p.get()

    # 3.
    q = queue.PriorityQueue()  #根据优先级进行选取
    q.put((1, 'alex'))
    q.put((10, 'tom'))
    q.put((3, 'ronghua'))

    print(q.get())
    print(q.get())
    print(q.get())



  • 相关阅读:
    Vue 介绍
    Django 组件-分页器
    Django 组件content_type
    DRF 解析器组件
    Django
    Django 组件-ModelForm
    Django 组件-用户认证
    Django 组件-中间件
    Django 组件-cookie与session
    Django CBV与FBV
  • 原文地址:https://www.cnblogs.com/my-love-is-python/p/9134923.html
Copyright © 2011-2022 走看看