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

python多进程之Pool

时间:2017-12-16 22:13:03      阅读:299      评论:0      收藏:0      [点我收藏+]

标签:方法   print   pre   指定   log   不能   异步   实现   create   

  1. mulitprocessing.Pool初始化参数可以指定进程池中的线程数
  2. 给进程池添加任务obj.apply_async(func,(arg,))
  3. 添加完任务后需要调用进程池的close方法
  4. Pool进程实现方式中主进程不会等待,执行完后就关闭,会导致子进程不能执行,所以需要调用Join方法
"""
python 进程池

"""
from multiprocessing import Process, Pool
import os

# create a new process pool with arg 2 means the process pool contain 2 process
pool = Pool(2)


# 使用多进程执行的任务
def test(arg):
    print("%d---work,work...this is %s process"%(arg, os.getpid()))


for i in range(20):
    print("putting job %d"%i)
    pool.apply_async(test, (i,))  # async异步执行

pool.close()  # 关闭进程池,相当于 不能够再次添加新任务了
pool.join()
# 当主进程的任务做完之后 立马结束,,,如果这个地方没join,会导致
# 进程池中的任务不会执行

print("main process runing.....")

python多进程之Pool

标签:方法   print   pre   指定   log   不能   异步   实现   create   

原文地址:http://www.cnblogs.com/endurance9/p/8047615.html

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