python

超轻量级php框架startmvc

Python优先队列实现方法示例

更新时间:2020-05-08 02:18:02 作者:startmvc
本文实例讲述了Python优先队列实现方法。分享给大家供大家参考,具体如下:1.代码importQueu

本文实例讲述了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 优先队列