码迷,mamicode.com
首页 > 编程语言 > 详细

python 进程池的使用

时间:2017-01-08 14:20:07      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:roc   int   sync   blog   pool   instance   pass   range   span   

python的线程无法很好的利用到多cpu的功能,所以大家都比较推荐多进程

下面是进程池的用法,我这里是清洗redis的过期内容

close和join一定要做,否则会占用内存

import multiprocessing

def process_redis(time_range):
pass # 这里不详细写了

def
clear_timeout_redis(): while 1: try: p_pool = multiprocessing.Pool(processes=6) # processes 默认是cpu个数 addTime = time.time() hash_field = addTime // 60 * 60 - 660 ikeys = r.keys("instance_*") # r是redis的pool for ikey in ikeys: time_range = ikey.split("_")[1] if int(time_range) < hash_field: p_pool.apply_async(process_redis, (time_range, )) # 这里是异步任务和普通起进程用法一样 except: logging.error(traceback.format_exc()) p_pool.close() p_pool.join() # 记得要close(),join() time.sleep(0)

python 进程池的使用

标签:roc   int   sync   blog   pool   instance   pass   range   span   

原文地址:http://www.cnblogs.com/hyfwin/p/6261884.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!