python 多线程运算和普通运算的时间对比

import threading
from queue import Queue
import copy
import time

def job(l, q):
    res = sum(l)
    q.put(res)

def multithreading(l):
    q = Queue()
    threads = []
    for i in range(4):
        t = threading.Thread(target=job,args=(copy.copy(l),q), name='T%i' % i)
        t.start()
        threads.append(t)
    [t.join() for t in threads]
    total = 0
    for _ in range(4):
        total += q.get()
    print(total)

def normal(l):
    total = sum(l)
    print(total)

if __name__ == '__main__':
    l = list(range(1000000))
    s_t = time.time()
    normal(l * 4)
    print('normal: ',time.time() - s_t)
    s_t = time.time()
    multithreading(l)
    print('multithreading: ', time.time() - s_t)

result:

1999998000000
normal:  0.09929490089416504
1999998000000
multithreading:  0.09315609931945801

推荐阅读更多精彩内容

  • 我是一个农民, 自然,没有什么出身, 小小的村庄, 可曾记得我调皮奔跑的成长? 地里遗失散落的粮, 见证曾背起拾起...
    夜雨歌者阅读 138评论 1 2
  • O: R:喔,X光影像这例子很不错。 I:显然对方的认知跟作者有差异。对方动机不一样,立场不一样,思维也不一样。 ...
    黄海山阅读 135评论 0 0