首页
学习
活动
专区
圈层
工具
发布

十、python学习笔记-线程-多线程加法(计算密集型)

代码语言:javascript
复制
# 使用多线程方式运行连续加法,对比单线程运行连续加法时间,证明多线程对计算密集型没有太好的效果(python没有真正的多线程)
"""
1、由于python的GIL机制,导致python并没有真正的多线程,所以对于计算密集型模型,多线程的效率甚至有可能会低于单线程(因为会有线程切换)
2、python2多线程确实会比单线程慢,python3经过优化后多线程略高于单线程
"""
import threading
import time


def add(n):
    num = 0
    for i in range(n):
        num += 1
    print(num)


if __name__ == '__main__':
    # 先执行非多线的
    start1_time = time.time()
    add(20000000)
    add(50000000)
    end1_time = time.time()-start1_time
    print('单线程花费时间{}'.format(end1_time))

    # 执行多线
    t1 = threading.Thread(target=add, args=(20000000,))
    t2 = threading.Thread(target=add, args=(50000000,))

    start2_time = time.time()
    t1.start()
    t2.start()

    t1.join()
    t2.join()
    end2_time = time.time() - start2_time
    print('多线程花费时间{}'.format(end2_time))
下一篇
举报
领券