python多线程用法及与单线程耗时比较
下面,通过一个简单的例子,来把多线程和单线程执行任务的耗时做个比较
import time import threading # 音乐播放器 def music(func, loop): for i in range(loop): print("I was listening to %s the %d time! %s" % (func, i+1, time.time())) time.sleep(2) # 视频播放器 def movie(func, loop): for i in range(loop): print("I was watching %s the %d time! %s" % (func, i+1, time.time())) time.sleep(5) # 创建线程数组 threads = [] # 创建线程t1,并添加到线程数组 t1 = threading.Thread(target=music, args=('十年',2)) # 已经创建好的一个线程 threads.append(t1) # 追加到线程数组 # 创建线程t2,并添加到线程数组 t2 = threading.Thread(target=movie, args=('疯狂动物城', 2)) # args是一个元组 threads.append(t2) # 创建线程t3,并添加到线程数组 # t3 = threading.Thread(target=movie, args=('少林足球', 2)) # threads.append(t3) print(threads) if __name__ == '__main__': print("多线程".center(20,'*')) start_time = time.time() # 启动线程 for t in threads: t.start() # 所有线程启动 for t in threads: t.join() # 守护线程 end_time = time.time() print('开始时间: %s' % start_time) print('结束时间: %s' % end_time) #最后的结束时间 print("总共耗时:{0:.5f}秒".format(end_time - start_time)) # 格式输出耗时 print('\n') print("单线程".center(20, '*')) start_time = time.time() music('十年',2) movie('疯狂动物城', 2) # movie('少林足球', 2) end_time = time.time() print('开始时间: %s' % start_time) print('结束时间: %s' % end_time) # 最后的结束时间 print("总共耗时:{0:.5f}秒".format(end_time - start_time)) # 格式输出耗时
多线程增加增加:t3线程
单线程增加:movie('少林足球', 2)
结论:多线程,增加线程后,运行时间基本上没变,总耗时还是等于耗时最多的线程所花费的时间;单线程则是线性的增加。另外,多线程的启动时间有极微小差异。
__EOF__
本文作者:持之以恒(韧)
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!