python 进程池Pool

 1 #-*- coding:utf-8 -*-
 2 from multiprocessing import Pool
 3 import os,time,random
 4 
 5 def long_time_task(name):
 6     print 'Run task name %s and pid : %s..'%(name,os.getpid())
 7     start = time.time()
 8     time.sleep(random.random()*3)
 9     end = time.time()
10     print 'Task %s betwine %s '%(name,(end-start))
11 #    pass
12 if __name__ == '__main__':
13     print 'Parent process %s.'%os.getpid()
14     p=Pool()
15     for i in range(5):
16         print 'now I is ' and i
17         print 'Parent process %s.'%os.getpid()
18         p.apply_async(long_time_task,args=(i,))
19     print 'Wait for all subprocesses done...'
20     print (i,)
21     p.close()
22     p.join()
23     print 'All over'

结果(类):

Parent process 3896.
0
Parent process 3896.
1
Parent process 3896.
2
Parent process 3896.
3
Parent process 3896.
4
Parent process 3896.
Wait for all subprocesses done...
(4,)
Run task name 0 and pid : 4300..
Run task name 1 and pid : 4596..
Task 1 betwine 1.32100009918
Run task name 2 and pid : 4596..
Task 0 betwine 2.61500000954
Run task name 3 and pid : 4300..
Task 2 betwine 2.65400004387
Run task name 4 and pid : 4596..
Task 4 betwine 0.599999904633
Task 3 betwine 2.77799987793
All over



 

posted @ 2015-07-07 09:56  何似王  阅读(165)  评论(0编辑  收藏  举报