本文实例讲述了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