Python多进程简单示例

首先使用multiprocessing的Pool进程池

pool=Pool(最大的进程数)

然后添加多个需要执行的进程,可以大于上面设置的最大进程数,会自动按照特定的队列顺序执行

result = pool.apply_async(要执行的函数名 , args=元组形式的参数列表)

函数的返回值为 result.get()

close和join一下

pool.close()   
pool.join()

注意:调用的函数如果有异常产生是不会报错的,而是会跳过错误。一定要考虑到可能报错的地方,添加异常处理的内容。

from  multiprocessing import Pool
import multiprocessing as mp
import os
import time
def add(a,b):
    t0=time.time()
    t00=time.strftime("%Y-%m-%d %H:%M:%S")
    s=0
    for i in range(100000000):
        s=s+i+a+b
    t1=time.time()
    t11=time.strftime("%Y-%m-%d %H:%M:%S")
    print("开始时间:%s, 结束时间:%s"%(t00,t11))
    #print("用时:%.2fs    result:%s,pid:%s"%(t1-t0,s,str(os.getpid())))

def simpleAdd(a):
    return a+222

if __name__=="__main__":
    print("root process: %s"%os.getpid())
    su=0
    cpu_num=mp.cpu_count()
    pool=Pool(cpu_num)
    for i in range(cpu_num):
        #pool.apply_async(add,args=(i,i))
        x=pool.apply_async(simpleAdd, args=(i, ))

        su+=x.get()

    pool.close()
    pool.join()
    print(su)
发布了57 篇原创文章 · 获赞 73 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/weixin_40450867/article/details/102808878
今日推荐