在 Python 中并行处理不同参数的函数

Fly*_*ura 4 python parallel-processing python-multiprocessing

这是我想要并行运行 printRange() 的简单代码:

def printRange(lrange):
    print ("First is " + str(lrange[0]) + " and last is " + str(lrange[1]))


def runInParallel():
    ranges = [[0, 10], [10, 20], [20, 30]]
    // Call printRange in parallel with each sublist of ranges given as argument
Run Code Online (Sandbox Code Playgroud)

我的问题与这里的 SO 问题不同,每个过程都是硬编码的,开始并最终加入。我想与其他 100 个 printRange() 工作函数并行运行 printRange()。每次硬编码是不可行的。这怎么可能?

bal*_*man 8

使用多处理

from multiprocessing import Pool


def print_range(lrange):
    print('First is {} and last is {}'.format(lrange[0], lrange[1]))


def run_in_parallel():
    ranges = [[0, 10], [10, 20], [20, 30]]
    pool = Pool(processes=len(ranges))
    pool.map(print_range, ranges)


if __name__ == '__main__':
    run_in_parallel()
Run Code Online (Sandbox Code Playgroud)

输出:

First is 0 and last is 10
First is 10 and last is 20
First is 20 and last is 30
Run Code Online (Sandbox Code Playgroud)