python计算并返回任意多个整数的和_利用Python的多重处理方法计算一个长输入lin的整数和...

使用Unix系统的一个名为forking的功能,您可以从父进程读取(而不是写入)数据,开销为零。通常,您将不得不复制数据,但是在Unix中分叉一个进程允许您绕过这个问题。

使用此方法,池中的作业可以访问整个输入字符串并提取它将要处理的部分。然后,它可以单独拆分和解析字符串的这一部分,并返回其部分中整数的总和。from multiprocessing import Pool, cpu_count

from time import time

def serial(data):

return sum(map(int, data.split()))

def parallel(data):

processes = cpu_count()

with Pool(processes) as pool:

args = zip(

["input_"] * processes, # name of global to access

range(processes), # job number

[processes] * processes # total number of jobs

)

return sum(pool.map(job, args, chunksize=1))

def job(args):

global_name, job_number, total_jobs = args

data = globals()[global_name]

chunk = get_chunk(data, job_number, total_jobs)

return serial(chunk)

def get_chunk(string

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值