您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用multiprocessing.Process并发进程数最多

使用multiprocessing.Process并发进程数最多

可能最明智的做法是multiprocessing.Pool根据系统上可用的最大内核数生成一个工作进程池,然后在内核可用时基本上提供任务。

标准文档(http://docs.python.org/2/library/multiprocessing.html#using-a-pool-of- workers)中的示例显示,您还可以手动设置核数:

from multiprocessing import Pool

def f(x):
    return x*x

if __name__ == '__main__':
    pool = Pool(processes=4)              # start 4 worker processes
    result = pool.apply_async(f, [10])    # evaluate "f(10)" asynchronously
    print result.get(timeout=1)           # prints "100" unless your computer is *very* slow
    print pool.map(f, range(10))          # prints "[0, 1, 4,..., 81]"

而且multiprocessing.cpu_count(),如果代码中需要的话,也很容易知道有一种方法可以计算给定系统上的内核数。

编辑:这是一些看起来适合您的特定情况的代码草案:

import multiprocessing

def f(name):
    print 'hello', name

if __name__ == '__main__':
    pool = multiprocessing.Pool() #use all available cores, otherwise specify the number you want as an argument
    for i in xrange(0, 512):
        pool.apply_async(f, args=(i,))
    pool.close()
    pool.join()
其他 2022/1/1 18:25:22 有215人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶