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操作csv文件实例详解
Jul 31 Python
python机器学习案例教程——K最近邻算法的实现
Dec 28 Python
python实现聚类算法原理
Feb 12 Python
python 美化输出信息的实例
Oct 15 Python
浅谈python之高阶函数和匿名函数
Mar 21 Python
Django对models里的objects的使用详解
Aug 17 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
Oct 17 Python
关于Pytorch MaxUnpool2d中size操作方式
Jan 03 Python
python Shapely使用指南详解
Feb 18 Python
利用Vscode进行Python开发环境配置的步骤
Jun 22 Python
Django视图、传参和forms验证操作
Jul 15 Python
Python selenium爬取微信公众号文章代码详解
Aug 12 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 将excel导入mysql
2009/11/09 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
2014/04/30 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
jQuery弹出层插件简化版代码下载
2008/10/16 Javascript
js输出列表实现代码
2010/09/12 Javascript
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
JavaScript随机生成信用卡卡号的方法
2015/04/07 Javascript
Javascript刷新窗口方法小结
2015/10/21 Javascript
jquery对所有input type=text的控件赋值实现方法
2016/12/02 Javascript
AngularJS 表单验证手机号的实例(非必填)
2017/11/12 Javascript
解决JavaScript中0.1+0.2不等于0.3问题
2018/10/23 Javascript
Vue CLI项目 axios模块前后端交互的使用(类似ajax提交)
2019/09/01 Javascript
使用FastCGI部署Python的Django应用的教程
2015/07/22 Python
全面了解Nginx, WSGI, Flask之间的关系
2018/01/09 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
python画图的函数用法以及技巧
2019/06/28 Python
Python学习笔记之Django创建第一个数据库模型的方法
2019/08/07 Python
tesserocr与pytesseract模块的使用方法解析
2019/08/30 Python
pygame实现俄罗斯方块游戏(AI篇1)
2019/10/29 Python
python数据分析工具之 matplotlib详解
2020/04/09 Python
python如何构建mock接口服务
2021/01/28 Python
CSS3实现swap交换动画
2016/01/19 HTML / CSS
美国一家专业的太阳镜网上零售商:Solstice太阳镜
2016/07/25 全球购物
adidas美国官网:adidas US
2016/09/21 全球购物
德国童装购物网站:NICKI´S.com
2018/04/20 全球购物
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
大学学年自我鉴定
2013/10/28 职场文书
主题教育活动总结
2014/05/05 职场文书
小区文明倡议书
2014/05/16 职场文书
主题党日活动总结
2014/07/08 职场文书
买房协议书范本
2014/10/23 职场文书
毕业设计论文评语
2014/12/31 职场文书
师范生教育见习总结
2015/06/23 职场文书
2015年秋季学校开学标语
2015/07/16 职场文书
2015元旦感言
2015/12/09 职场文书
自荐信大全
2019/03/21 职场文书