Python优先队列实现方法示例


Posted in Python onSeptember 21, 2017

本文实例讲述了Python优先队列实现方法。分享给大家供大家参考,具体如下:

1. 代码

import Queue
import threading
class Job(object):
  def __init__(self, priority, description):
    self.priority = priority
    self.description = description
    print 'New job:', description
    return
  def __cmp__(self, other):
    return cmp(self.priority, other.priority)
q = Queue.PriorityQueue()
q.put(Job(3,'Mid-level job'))
q.put(Job(10,'Low-level job'))
q.put(Job(1,'Important job'))
def process_job(q):
  while True:
    next_job = q.get()
    print 'Processing job:', next_job.description
    q.task_done()
workers = [threading.Thread(target=process_job,args=(q,)),
      threading.Thread(target=process_job,args=(q,)),]
for w in workers:
  w.setDaemon(True)
  w.start()
q.join()

2. 执行结果

New job: Mid-level job
New job: Low-level job
New job: Important job
Processing job: Important job
Processing job: Mid-level job
Processing job: Low-level job

更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python浅拷贝与深拷贝用法实例
May 09 Python
详解Python设计模式编程中观察者模式与策略模式的运用
Mar 02 Python
Python中函数eval和ast.literal_eval的区别详解
Aug 10 Python
python机器学习之贝叶斯分类
Mar 26 Python
Python父目录、子目录的相互调用方法
Feb 16 Python
django admin 自定义替换change页面模板的方法
Aug 23 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
Mar 19 Python
Python openpyxl 插入折线图实例
Apr 17 Python
基于python实现把json数据转换成Excel表格
May 07 Python
解决python中import文件夹下面py文件报错问题
Jun 01 Python
Python lambda表达式原理及用法解析
Aug 18 Python
python Selenium 库的使用技巧
Oct 16 Python
python虚拟环境virtualenv的安装与使用
Sep 21 #Python
基于python socketserver框架全面解析
Sep 21 #Python
基于python select.select模块通信的实例讲解
Sep 21 #Python
Python实现小数转化为百分数的格式化输出方法示例
Sep 20 #Python
Python实现字符串格式化输出的方法详解
Sep 20 #Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
Sep 20 #Python
python select.select模块通信全过程解析
Sep 20 #Python
You might like
php preg_match_all结合str_replace替换内容中所有img
2008/10/11 PHP
PHP数据库万能引擎类adodb配置使用以及实例集锦
2014/06/12 PHP
前端必学之PHP语法基础
2016/01/01 PHP
php封装json通信接口详解及实例
2017/03/07 PHP
php实现微信模板消息推送
2018/03/30 PHP
PHP实现二维数组按照指定的字段进行排序算法示例
2019/04/23 PHP
JavaScript 面向对象编程(2) 定义类
2010/05/18 Javascript
关闭ie窗口清除Session的解决方法
2014/01/10 Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
2014/06/23 Javascript
JavaScript中的DSL元编程介绍
2015/03/15 Javascript
jQuery实现滚动切换的tab选项卡效果代码
2015/08/26 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
2016/05/17 Javascript
浅析JavaScript回调函数应用
2016/05/22 Javascript
浅谈addEventListener和attachEvent的区别
2016/07/14 Javascript
浅谈EasyUi ComBotree树修改 父节点选择的问题
2016/11/07 Javascript
JS检测数组类型的方法小结
2017/03/14 Javascript
jQuery EasyUI之验证框validatebox实例详解
2017/04/10 jQuery
微信小程序 支付功能实现PHP实例详解
2017/05/12 Javascript
微信小程序自定义prompt组件步骤详解
2018/06/12 Javascript
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
详解几十行代码实现一个vue的状态管理
2019/01/28 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
解决vue无法侦听数组及对象属性的变化问题
2020/07/17 Javascript
如何在selenium中使用js实现定位
2020/08/18 Javascript
使用Python中的cookielib模拟登录网站
2015/04/09 Python
Python 迭代器工具包【推荐】
2016/05/06 Python
python机器学习实战之树回归详解
2017/12/20 Python
python开启debug模式的方法
2019/06/27 Python
澳大利亚设计师服装在线:MISHA
2019/10/07 全球购物
英国排名第一的餐具品牌:Denby Pottery
2019/11/01 全球购物
C#如何进行LDAP用户校验
2012/11/21 面试题
JavaScript获取当前url根目录(路径)
2014/02/19 面试题
用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别
2012/11/04 面试题
一名老师的自我评价
2014/02/07 职场文书
逃课上网检讨书
2014/02/20 职场文书
python非标准时间的转换
2021/07/25 Python