python进阶--创建多线程的两种方法

1、threading模块介绍,如下:
python的thread模块是比较底层的模块,对应的是threading模块。
创建线程对象:threading.Thread(target=func)
,参数target指定线程执行的任务(函数)
2、Thread类提供了以下方法:
run()
用以表示线程活动的方法
start()
启动线程活动
join(time)
设置主线程会等待time秒后再往下执行,time默认为子线程结束,多个子线程之间设置的值
会叠加。
isAlive()
返回线程是否活动的
getName()
返回线程名。
setName()
设置线程名。
threading.currentThread()
返回当前执行的线程。
threading.enumerate()
返回正在运行的所有线程(list)。正在运行指线程启动后、结束前,不包括启动前和终止后的线程。
threading.activeCount()
返回正在运行的线程数量

1、举个例子,两个函数进行单任务执行。
在这里插入图片描述
2、如果想节省时间提高脚本执行效率,可以用线程。
第一种创建线程方法。新建任务1、2,func1(),func2()
再创建主线程进行执行任务,target参数没有表示没有任务,所以此参数不可或缺。
t1.start()表示任务开始
t1.join()表示阻塞上面的任务,执行完毕之后再执行计算时间脚本
在这里插入图片描述
3、第二种创建线程方法:继承线程类,重写run()方法。
Q1:如果想把要执行的任务写在run()方法中,可以继承线程。可以快速创建子线程,类对象不需要传参数,因为任务写在run()中了。下图1。

在这里插入图片描述
Q2:如果想传参,可以进行参数化配置。见下图2,类对象就可以传不同的参数了。
在这里插入图片描述
注:thread方法里明确定义,如果自己要定义__init__方法,就要继承父类的__init__方法。所以在定义__init__方法(进行参数化配置)时,要用超类继承父类的__init__方法。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值