zoukankan      html  css  js  c++  java
  • day33-1 线程队列

    线程队列

    线程队列就是一个普通的容器,使用import queue,用法与进程Queue一样

    先进先出

    from queue import Queue
    
    q = Queue()
    q.put(2)  
    q.put('a')
    q.put((2, 1))
    
    print(q.get())  # 2
    print(q.get())  # 'a'
    print(q.get())  # (2, 1)
    

    后进先出:用于模拟栈这种容器

    from queue import LifoQueue
    
    q = LifoQueue()
    q.put(2)
    q.put('a')
    q.put((2, 1))
    
    print(q.get())  # (2, 1)
    print(q.get())  # 'a'
    print(q.get())  # 2
    

    存储数据时可设置优先级

    from queue import PriorityQueue
    
    q = PriorityQueue()
    q.put(2)
    q.put(3)
    q.put(1)
    
    # 取出数据时会比较大小,越小的优先级越高
    print(q.get())  # 1
    print(q.get())  # 2
    print(q.get())  # 3
    --------------------------------------------------------------------------------
    
    # 自定义设置优先级
    from queue import PriorityQueue
    
    
    class Person:
        def __init__(self, name, age):
            self.name = name
            self.age = age
    	
        # 覆盖比较运算符,当两个对象之间使用比较运算符时,会自动执行该方法
        def __lt__(self, other):
            # 当两对象年龄相等时,比较名字,否则年龄小的先出
            if self.age == other.age:
                return self.name < other.name
            return self.age < other.age
    
    
    p1 = Person('nick', 18)
    p2 = Person('tank', 17)
    p3 = Person('jerry', 17)
    q = PriorityQueue()
    q.put(p1)
    q.put(p2)
    q.put(p3)
    print(q.get().name)  # jerry
    print(q.get().name)  # tank
    print(q.get().name)  # nick
    
  • 相关阅读:
    正则表达式
    c#文件流
    css
    Flash笔记 快捷键
    .Net截取指定长度的汉字,其余用...表示的方法
    远程修改最新消息管理系统(JQuery版)
    远程修改最新消息管理系统
    kubernetes 1.6 集群实践 (一)
    创建kafak集群
    创建zookeeper集群
  • 原文地址:https://www.cnblogs.com/863652104kai/p/11151622.html
Copyright © 2011-2022 走看看