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中的wxPython实现最基本的浏览器功能
Apr 14 Python
python实现telnet客户端的方法
Apr 15 Python
Python选课系统开发程序
Sep 02 Python
基于python OpenCV实现动态人脸检测
May 25 Python
python 移除字符串尾部的数字方法
Jul 17 Python
python 运用Django 开发后台接口的实例
Dec 11 Python
Python实现简单查找最长子串功能示例
Feb 26 Python
python交互模式下输入换行/输入多行命令的方法
Jul 02 Python
Python基础之变量基本用法与进阶详解
Jan 03 Python
基于virtualenv创建python虚拟环境过程图解
Mar 30 Python
基于Keras中Conv1D和Conv2D的区别说明
Jun 19 Python
Python全局变量与global关键字常见错误解决方案
Oct 05 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操作Access类(PHP+ODBC+Access)
2007/01/02 PHP
php无限分类使用concat如何实现
2015/11/05 PHP
PHP在线打包下载功能示例
2016/10/15 PHP
Zend Framework实现自定义过滤器的方法
2016/12/09 PHP
PHP5.0 TIDY_PARSE_FILE缓冲区溢出漏洞的解决方案
2018/10/14 PHP
让你的博客飘雪花超出屏幕依然看得见
2013/01/04 Javascript
浅谈js中的闭包
2015/03/16 Javascript
JavaScript获取浏览器信息的方法
2015/11/20 Javascript
基于javascript实现listbox左右移动
2016/01/29 Javascript
Vue.js表单控件实践
2016/10/27 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
2017/08/08 jQuery
JS实现点击按钮可实现编辑功能
2018/07/03 Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
2019/05/14 Javascript
JS实现json数组排序操作实例分析
2019/10/28 Javascript
ES6 Symbol在对象中的作用实例分析
2020/06/06 Javascript
vue-cli4项目开启eslint保存时自动格式问题
2020/07/13 Javascript
从零学python系列之数据处理编程实例(二)
2014/05/22 Python
Python字符和字符值(ASCII或Unicode码值)转换方法
2015/05/21 Python
利用python将图片版PDF转文字版PDF
2019/05/03 Python
Django工程的分层结构详解
2019/07/18 Python
对django layer弹窗组件的使用详解
2019/08/31 Python
numpy.random.shuffle打乱顺序函数的实现
2019/09/10 Python
tensorflow模型文件(ckpt)转pb文件的方法(不知道输出节点名)
2020/04/22 Python
Keras中的多分类损失函数用法categorical_crossentropy
2020/06/11 Python
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
Lentiamo荷兰:在线订购隐形眼镜、隐形眼镜液和太阳镜
2019/10/25 全球购物
销售总监工作职责
2013/11/21 职场文书
市级青年文明号申报材料
2014/05/26 职场文书
党员评议表自我评价范文
2014/10/20 职场文书
公务员政审材料范文
2014/12/23 职场文书
小学语文国培研修日志
2015/11/13 职场文书
2016年小学“公民道德宣传日”活动总结
2016/04/01 职场文书
Nginx + consul + upsync 完成动态负载均衡的方法详解
2021/03/31 Servers
Mysql中存储引擎的区别及比较
2021/06/04 MySQL
MySQL 分区表中分区键为什么必须是主键的一部分
2022/03/17 MySQL
解决vue自定义组件@click点击失效问题
2022/04/30 Vue.js