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 19 Python
python Django连接MySQL数据库做增删改查
Nov 07 Python
使用beaker让Facebook的Bottle框架支持session功能
Apr 23 Python
django定期执行任务(实例讲解)
Nov 03 Python
python中ASCII码字符与int之间的转换方法
Jul 09 Python
对python:print打印时加u的含义详解
Dec 15 Python
python使用参数对嵌套字典进行取值的方法
Apr 26 Python
python和mysql交互操作实例详解【基于pymysql库】
Jun 04 Python
基于python实现雪花算法过程详解
Nov 16 Python
Python的对象传递与Copy函数使用详解
Dec 26 Python
python 偷懒技巧——使用 keyboard 录制键盘事件
Sep 21 Python
Python实现数据的序列化操作详解
Jul 07 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简单的伪原创程序,配合商城采集用的
2010/10/12 PHP
PHP调用接口API封装的例子
2019/10/11 PHP
JavaScript OOP类与继承
2009/11/15 Javascript
JavaScript中OnLoad几种使用方法
2012/12/15 Javascript
JavaScript如何从listbox里同时删除多个项目
2013/10/12 Javascript
ECMAScript 6即将带给我们新的数组操作方法前瞻
2015/01/06 Javascript
zepto.js中tap事件阻止冒泡的实现方法
2015/02/12 Javascript
JavaScript中的this到底是什么(一)
2015/12/09 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
2016/05/05 Javascript
微信小程序 底部导航栏目开发资料
2016/12/05 Javascript
详解nodejs 文本操作模块-fs模块(五)
2016/12/23 NodeJs
微信小程序 WebSocket详解及应用
2017/01/21 Javascript
Vue 单文件中的数据传递示例
2017/03/21 Javascript
jQuery Validate格式验证功能实例代码(包括重名验证)
2017/07/18 jQuery
Angular动态绑定样式及改变UI框架样式的方法小结
2018/09/03 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
2018/10/12 Javascript
layui写后台表格思路和赋值用法详解
2019/11/14 Javascript
React学习之JSX与react事件实例分析
2020/01/06 Javascript
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
2020/02/01 jQuery
从零开始学Python第八周:详解网络编程基础(socket)
2016/12/14 Python
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
Django Rest framework之认证的实现代码
2018/12/17 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
2019/11/15 Python
Python列表操作方法详解
2020/02/09 Python
tensorflow多维张量计算实例
2020/02/11 Python
Python-openCV开运算实例
2020/07/05 Python
索尼巴西商店:Sony巴西
2019/06/21 全球购物
学生会干部自荐信
2014/02/04 职场文书
企业精神口号
2014/06/11 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
管辖权异议上诉状
2015/05/23 职场文书
历史博物馆观后感
2015/06/05 职场文书
培训心得体会怎么写
2016/01/25 职场文书
Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
2022/06/21 Python
DQL数据查询语句使用示例
2022/12/24 MySQL