设为首页 加入收藏

TOP

Python进程池:multiprocessing.pool(二)
2015-07-16 12:56:58 来源: 作者: 【 】 浏览:7
Tags:Python 进程 multiprocessing.pool
un task Frank-%s" %(os.getpid())
? ? start = time.time()
? ? time.sleep(random.random() * 20)
? ? end = time.time()
? ? print 'Task Frank runs %0.2f seconds.' %(end - start)
? ? ? ?
if __name__=='__main__':
? ? function_list=? [Lee, Marlon, Allen, Frank]
? ? print "parent process %s" %(os.getpid())


? ? pool=multiprocessing.Pool(4)
? ? for func in function_list:
? ? ? ? pool.apply_async(func)? ? #Pool执行函数,apply执行函数,当有一个进程执行完毕后,会添加一个新的进程到pool中


? ? print 'Waiting for all subprocesses done...'
? ? pool.close()
? ? pool.join()? ? #调用join之前,一定要先调用close() 函数,否则会出错, close()执行后不会有新的进程加入到pool,join函数等待素有子进程结束
? ? print 'All subprocesses done.'


一次执行结果


parent process 7704
Waiting for all subprocesses done...
Run task Lee-6948
Run task Marlon-2896
Run task Allen-7304
Run task Frank-3052
Task Lee, runs 1.59 seconds.
Task Marlon runs 8.48 seconds.
Task Frank runs 15.68 seconds.
Task Allen runs 18.08 seconds.
All subprocesses done.


--------------------------------------分割线 --------------------------------------


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C# 泛型的协变和逆变 下一篇Python日志模块logging

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: