zoukankan      html  css  js  c++  java
  • 【Python】多进程2

    #练习:测试单进程和多进程执行效率
    
    import multiprocessing
    import time
    def m1(x):
        time.sleep(0.01)
        return x * x
    
    if __name__ == '__main__':
        #并行并发
        pool = multiprocessing.Pool(multiprocessing.cpu_count()) #获取CPU的核数,表示进程池的最大进程数
        print type(pool)
        i_list = range(1000)
        time1=time.time()
        pool.map(m1, i_list)
        time2=time.time()
        print 'time elapse:',time2-time1
    
        #串行
        time1=time.time()
        map(m1, i_list)
        time2=time.time()
        print 'time elapse:',time2-time1
    
    
    #练习:异步进程
    import time
    from multiprocessing import Pool
    
    def f(x,y):
        return x * y
    
    if __name__ == '__main__':
        pool = Pool(processes = 4)      # start 4 worker processes #固定写法,也可以写成pool = Pool(4)
        #result = pool.apply_async(f, [10]) 
        # evaluate "f(10)" asynchronously,这里是用异步的方式,这里一行表示起的一个进程
        result1 = pool.apply_async(f, args=(10,20))
        result2 = pool.apply_async(f, args=(10,30))
        result3 = pool.apply_async(f, args=(10,40))
        #print result.get(timeout = 1)
        print result1.get(timeout = 0.001)
        print result2.get(timeout = 0.01)
        print result3.get(timeout = 1)
        #print pool.map(f,range(10))    # prints "[0, 1, 4,..., 81]"
  • 相关阅读:
    7. 初识Python之函数
    6. 初识Python之dict和set
    5. 初识Python之循环语句
    4. 初识Python之条件语句
    3. 初识Python之列表
    原生js实现一个小小的轮波
    原生js实现弹幕
    js实现一个简单的学生管理系统
    js绘制时钟
    js实现的学生管理系统
  • 原文地址:https://www.cnblogs.com/jingsheng99/p/8699818.html
Copyright © 2011-2022 走看看