Python进程中不同进程中的参数

2024-09-28 17:28:05 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我要并行运行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

我的问题与this SO question不同,因为在这里,每个进程都是硬编码、启动和最终连接的。 我想并行运行printRange()和其他100个printRange()工作函数。每次都硬编码是不可行的。这怎么可能?在


Tags: and代码in编码isdefcallfirst
2条回答

像这样?在

import threading

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

def runInParallel():
    ranges = [[0, 10], [10, 20], [20, 30]]
    for i in ranges:
        t = threading.Thread(target=printRange, args = [i])
        t.start()

runInParallel()

使用多重处理

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()

输出:

^{pr2}$

相关问题 更多 >