小编use*_*101的帖子

如何在Python中使用多处理并行求和循环

我很难理解如何使用Python的多处理模块.

我有一个和1n哪里n=10^10,这是太大,无法进入名单,这似乎是在网上使用多很多例子推力.

有没有办法将范围"拆分"为一定大小的段,然后为每个段执行求和?

例如

def sum_nums(low,high):
    result = 0
    for i in range(low,high+1):
        result += i
    return result
Run Code Online (Sandbox Code Playgroud)

而且我想sum_nums(1,10**10)通过将其分解成许多来计算sum_nums(1,1000) + sum_nums(1001,2000) + sum_nums(2001,3000)...,等等.我知道有一个封闭形式,n(n+1)/2但假装我们不知道.

这是我尝试过的

import multiprocessing

def sum_nums(low,high):
    result = 0
    for i in range(low,high+1):
        result += i
    return result

if __name__ == "__main__":
    n = 1000 
    procs = 2 

    sizeSegment = n/procs

    jobs = []
    for i in range(0, procs):
        process = multiprocessing.Process(target=sum_nums, args=(i*sizeSegment+1, (i+1)*sizeSegment))
        jobs.append(process)

    for …
Run Code Online (Sandbox Code Playgroud)

python multiprocessing

7
推荐指数
1
解决办法
5307
查看次数

标签 统计

multiprocessing ×1

python ×1