python: multiprocessing多进程并行计算

本文介绍了Python中使用multiprocessing模块进行多进程并行计算的概念和实例。在CPU密集型任务中,多进程优于多线程。文中提供了一个科学计算的例子,通过模拟耗时操作展示了多进程如何提高运行效率。尽管启动多进程有一定的开销,但在func运行时间较长时,多进程能显著节省总执行时间。
摘要由CSDN通过智能技术生成

简介

多进程 vs 多线程
CPU密集型用多进程;IO密集型用多线程。

实例1

在科学计算中使用multiprocessing进行多进程并行计算。

  • 前提:多个方法func1,func2,…,funcN是相互独立的,可以并行计算。
  • 当每个func的运行时间都较长时,利用多进程并行计算才会极大提高运行效率。原因:使用多进程本身会有一定的时间开销。

实例代码
注意:通过sleep(t)来模拟控制func运行消耗的时间

def func1(x):
    print(f'当前进程:{os.getpid()},计算func1中......')
    time.sleep(5)
    return x**2

def func2(x):
    print(f'当前进程:{os.getpid()},计算func2中......')
    time.sleep(5)
    return x**3
    
def test1():
    """单进程计算
    """
    print('方法1:单进程计算')
    print(f'当前主进程:{os.getpid()}')
    start = time.time()
    a = func1(2)
    b = func2(2)
    c = a + b
    end = time.time()
    t = end - start
    print('c=', c)
    print(f'计算完成,共用时:{t:.2f}s')


def tes
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值