本文实例讲述了Python优先队列实现方法。分享给大家供大家参考,具体如下:
1. 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
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. 执行结果
1
2
3
4
5
6
|
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程序设计有所帮助。
原文链接:http://blog.csdn.net/xiecj_2006/article/details/42464681