python进程池 multiprocessing.pool 效果尝试


```python
import time
import timeit
from multiprocessing.pool import Pool
import os
MAX_NUM=10000000

#结论 进程池对多变量传入计算很有用 但是对调用空的函数没啥帮助
def nothing(offset):
    pass

def nothing2(offset):
    offset=offset+1
    offset=offset*1
    offset=2*offset-offset
def main1():#nothing:3.12s nothing2:3.207s
    pool=Pool(os.cpu_count())
    groups=[x for x in range(MAX_NUM)]
    pool.map(nothing2,groups)
    pool.close()
    pool.join()

def main2():#nothing:2.17s nothing2:4.24s
    groups = [x for x in range(MAX_NUM)]
    for i in groups:
        nothing2(i)
def count_spend_time(func):#不要用这种计时间的方式 本身就会浪费一些计算时间
    #main1: nothing2:3.37s
    start_time = time.perf_counter()
    func()
    end_time = time.perf_counter()
    time_dif = (end_time - start_time)
    second = time_dif % 60
    minute = (time_dif // 60) % 60
    hour = (time_dif // 60) // 60
    print('spend ' + str(hour) + 'hours , ' + str(minute) + 'minutes , ' + str(second) + 'seconds')

if __name__ == '__main__':
    # count_spend_time(main1)


    ##main1 main2 切换
    t1=timeit.Timer("main1()",'from __main__ import main1,main2')
    print(t1.timeit(1))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值