Python多线程threading模块中Thread类如何使用
1、打开Ubuntu虚拟机,登录系统,在桌面空白处右键 -- 打开终端。
2、在终端使用gedit创建一个thr.py文件并打开,命令如下:gedit thr.py
3、在thr.py文件编写代码如下:import datetime,timedef tellMe(msg): print (msg) time.sleep(1)if __name__ == '__main__': print ('主线程') begin = datetime.datetime.now() for i in range(5): tellMe('do something') end = datetime.datetime.now() print ((end-begin).seconds)这里只有一个线程,并没有使用多线程
4、保存代码,在终端运行代码,命令如下:python3 thr.py
5、代码运行,结果如下图,总共执行时间是5秒
6、修改代码,使用threading模块的Thread类,通过多线程达到上面的效果,代码如下:import datetime,timefrom threading import Threaddef tellMe(msg): print (msg) time.sleep(1)if __name__ == '__main__': print ('主线程') begin = datetime.datetime.now() for i in range(5): t = Thread(target=tellMe,args=('do something',)) t.start() end = datetime.datetime.now() print ((end-begin).seconds)
7、保存代码,在终端运行代码,命令如下:python3 thr.py打印出代码执行时间是0,但是实际会过一会再弹出Ubuntu系统的提示符,这是因为通过主线程计算出代码执行时间,这是不准确的,因为主线程是在所有线程结束后才结束,实际等待过程差不多就是子线程最耗时的1秒。