python 进程池的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 进程池的使用的主要内容,如果未能解决你的问题,请参考以下文章

python 进程池的简单使用方法

python-- 多进程的基本语法 进程间数据交互与共享进程锁和进程池的使用

Python网编_进程池的回调函数

进程池Pool的imap方法解析

python中socket进程线程协程池的创建方式

python线程池和进程池的多参数调用