首页 > 编程语言 > 详细

42 Python - python并行编程 多线程之——threading模块(开发中推荐)

时间:2019-07-10 18:29:46      阅读:93      评论:0      收藏:0      [点我收藏+]

技术分享图片

001 例子1:子线程统一执行

代码说明:

声明数组存放线程实例,目的是子线程统一执行开始

threading.Thread()方法的参数说明:

第一个参数group默认为空,无实际意义,为后来版本预留位置

第二个参数target,表示当前线程执行哪个函数

第三个参数args:第二个参数里面函数的是否需要传入参数

      其他不管

代码截图:

 技术分享图片

 

结果分析:

 技术分享图片

 

主函数先于子线程完成,问题原因是:主函数的主线程没有跟子线程同步

 

002 例子改进:主线程最后结束

解决办法,子线程启动之后,发出一个信号给主线程,即用join方法告诉主线程等待子线程的执行完毕后再完毕

 技术分享图片

 

改进结果:符合预期效果(主线程最后结束)

 技术分享图片

 

 

003 获得线程名称

 技术分享图片

 

threading.current_thread().name

代码改进

 技术分享图片

 

结果

 技术分享图片

 

 

004 构造线程其他方法:自定义类

之前构造线程用的是技术分享图片

 

现在使用Thread类的派生类实现多线程。自定义类好处是很多复杂逻辑自己封装到自定义类中,解耦合技术分享图片

 

 

(1)例子:自定义类代码如下

 技术分享图片

 

(2)该类说明

自己定义一个类 需要继承一个基类threading下面的Thread类,该定义的类需要完成构造函数和run函数

(1)   构造函数:

构造函数参数:需要指定执行函数 指定执行函数参数技术分享图片

 构造函数语句:先执行基类thread的构造函数技术分享图片

                         再执行指定函数技术分享图片

                          参数赋值技术分享图片

 

(2)run函数需要定义,覆盖掉基类的run函数

 

(3)整体代码

 技术分享图片

技术分享图片

结果

 技术分享图片

 

42 Python - python并行编程 多线程之——threading模块(开发中推荐)

原文:https://www.cnblogs.com/yijiexi/p/11165644.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!