Python并行for循环例子

前面转载了一篇关于Python并行执行for循环文章,写了个简单的例子。
使用 timeit 模块计算运行时间
使用 operator 模块判断返回值是否相同。

import multiprocessing
import timeit
import operator
def do_something(x):
    v = pow(x, 2)
    return v

if __name__ == '__main__':
    a =[]
    start = timeit.default_timer()
    for i in range(1, 100000000):
        a.append(do_something(i))

    end = timeit.default_timer()
    print('single processing time:', str(end-start), 's')
    print(a[1:10])

	# revise to parallel
    items = [x for x in range(1, 100000000)]
    p = multiprocessing.Pool(4)
    start = timeit.default_timer()
    b = p.map(do_something, items)
    p.close()
    p.join()
    end = timeit.default_timer()
    print('multi processing time:', str(end-start)'s')
    print(b[1:10])
    print('Return values are all equal ?:', operator.eq(a, b))

输出结果:

single processing time: 53.43800377573327s
[4, 9, 16, 25, 36, 49, 64, 81, 100]
multi processing time: 26.168114312830433s
[4, 9, 16, 25, 36, 49, 64, 81, 100]
Return values are all equal ?: True

你可能感兴趣的:(Python)