【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]"
原文地址:https://www.cnblogs.com/jingsheng99/p/8699818.html