05进程池的使用

from multiprocessing import Process, Pool
import time, os


def fun(n):
    time.sleep(1)
    print("当前的进程:", os.getpid())
    n += 1000


def bar(args):
    print("回调函数,使用的主进程进行调用", os.getpid())


#   在window中需要写下面这一句
if __name__ == "__main__":
    # 实例化一个进程池
    pool = Pool(5)
    for i in range(10):
        # 使用进程池中的进程进行函数的调用
        # pool.apply(func=fun, args=(i,))#当使用apply方法的时候程序是串行
        pool.apply_async(func=fun, args=(i,), callback=bar)

    print("这个是主进程end")
    print("主进程id", os.getpid())
    # 需要先关闭进程池,再调用join()等待进程任务完成才结束程序
    pool.close()
    pool.join()

  

posted on 2018-01-05 11:51  努力的活着_在人间  阅读(126)  评论(0)    收藏  举报

导航