首页 > 代码库 > python 进程池的使用
python 进程池的使用
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 进程池的使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。