python进行并行计算

python进行并行计算

有的时候在我们在用python进行跑单个程序的时候耗费时间比较多,占用的资源又比较少,而且可能需要多次测试调参,这个时候如果可以一次跑多个程序的话就会很方便了。本期分享一下python如何利用多进程来并行跑程序:

首先需要python的multiprocessing库,没有的话自行下载;不会下载的可以留言或发邮件给我,文末有邮件地址。

然后我们通过pool = multiprocessing.Pool(2)来设定多进程,其中2表示用两个进程;

要创建多进程的话得调用apply_async()函数,添加完函数后加上pool.close() pool.join()来结尾就可创建多进程了。

多进程代码的例子如下:
import multiprocessing,time
def function(string,seconds):
    time.sleep(seconds) # 睡眠seconds秒
    print(string)
    return seconds
def note_return(value):
    note.append(value)
if __name__ == '__main__':
    cores = multiprocessing.cpu_count() # 该语句用于查看电脑有多少个核
    print("cores =",cores)
    note= [] # 用于记录多进程的返回值
    pool = multiprocessing.Pool( 2 ) #  创建2个并行程序
    ### apply_async()函数调用有两种方式,第一种是直接挨个写,第二种是指定参数的方式
    pool.apply_async(function,args=( "function A",8,),callback=note_return) # 第一种调用方法,指定参数**==**
    pool.apply_async(function,("function B",3,),callback=note_return) # 第二种调用方法,挨个写,由于第三个参数是别的,所以用了指定的方式:callback=
    pool.close()
    pool.join()
    print(note)

以上代码例子在函数apply_async()中使用了callback=参数,用于记录并行程序的返回值,若调用函数无返回值,则可不写。

结果

在这里插入图片描述
结果在第3秒的时候输出了“function B”,第8秒的时候输出了“function A”,可以看到是并行了,并且成功记录的并行程序的返回值。

好了,本次的python多进程并行计算的分享就到这里了,才疏学浅,难免有错误和不当之处,欢迎交流批评指正!
同时有问题的话欢迎留言或邮箱联系(ljt_IT@163.com)。

创作不易,觉得写得不错就微信扫码奖励一下吧!

Reward

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值