Python 多线程其他属性以及继承Thread类详解


Posted in Python onAugust 28, 2019

一、线程常用属性

1.threading.currentThread:返回当前线程变量

2.threading.enumerate:返回一个包含正在运行的线程的list,正在运行的线程指的是线程启动后,结束前的状态

3.threading.activeCount:返回正在运行的线程数量,效果跟len(threading.enumer)一样

4.thr.setName:给线程设置名字

5.thr.getName:得到线程的名字。

举例:

mport _thread as thread
import time
def loop1(in1):
  print("Start loop 1 at:", time.ctime())
print("我是参数", in1)
time.sleep(4)
print("End loop 1 at:", time.ctime())
​
def loop2(in1, in2):
  print("Start loop 2 at:", time.ctime())
print("我是参数", in1, "和参数 ", in2)
time.sleep(4)
print("End loop 2 at:", time.ctime())
​
import threading
def main1():
  print("Starting at:", time.ctime())
t1 = threading.Thread(target = loop1, args = ('', ))
t1.setName("THR_1")# 给线程重命名
t1.start()
​
t2 = threading.Thread(target = loop2, args = ('', ''))
t2.setName("THR_2")
t2.setDaemon(True)# 主线程运行完了就完了, 不用等线程2
t2.start()
​
time.sleep(3)# 三秒后两个子线程仍然在运行着, 因为他们里面有一个四秒在停着
for thr in threading.enumerate(): #返回的是正在运行的子线程的列表
print("正在运行的子线程名为:{0}".format(thr.getName()))# 读取了该线程的名字
​
print("正在运行的子线程数量为:{0}".format(threading.activeCount()))# 打印出了线程的数量, 包括主线程和两个子线程一共3个线程
t1.join()# 等线程1运行完了再接着向下运行
print("ALL done at :", time.ctime())
​
if __name__ == "__main__":
  main1()

Python 多线程其他属性以及继承Thread类详解 

二、直接继承子类threading.Thread

1.直接继承Thread;重写run函数

​2.例子:

class MyThread(threading.Thread): #定义一个Thread的子类
def __init__(self, args): #重写__init__函数, 其中参数为self和新引入的参数
super(MyThread, self).__init__()# 固定格式, 继承父类的__init__函数
self.args = args
​
def run(self):
  time.sleep(1)
print("The args for this class is {0}".format(self.args))
​
for i in range(5):
  t = MyThread(i)
t.start()
t.join()

Python 多线程其他属性以及继承Thread类详解

三、源码

d24_3_other_multi_thread_attribute.py

https://github.com/ruigege66/Python_learning/blob/master/d24_3_other_multi_thread_attribute.py​

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python计算程序运行时间的方法
Dec 13 Python
Linux 发邮件磁盘空间监控(python)
Apr 23 Python
浅谈python中copy和deepcopy中的区别
Oct 23 Python
python递归函数绘制分形树的方法
Jun 22 Python
Flask实现图片的上传、下载及展示示例代码
Aug 03 Python
在python中安装basemap的教程
Sep 20 Python
Python2 Selenium元素定位的实现(8种)
Feb 25 Python
python DataFrame转dict字典过程详解
Dec 26 Python
python列表的逆序遍历实现
Apr 20 Python
利用Pycharm连接服务器的全过程记录
Jul 01 Python
python中filter,map,reduce的作用
Jun 10 Python
python playwright之元素定位示例详解
Jul 23 Python
Python 动态导入对象,importlib.import_module()的使用方法
Aug 28 #Python
Python 共享变量加锁、释放详解
Aug 28 #Python
Python使用百度api做人脸对比的方法
Aug 28 #Python
linux下python中文乱码解决方案详解
Aug 28 #Python
Kears+Opencv实现简单人脸识别
Aug 28 #Python
解决python 文本过滤和清理问题
Aug 28 #Python
解决Python对齐文本字符串问题
Aug 28 #Python
You might like
Mysql的常用命令
2006/10/09 PHP
通过ODBC连接的SQL SERVER实例
2006/10/09 PHP
利用discuz自带通行证整合dedecms的方法以及文件下载
2007/03/06 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
javascript编程起步(第六课)
2007/02/27 Javascript
设置下载不需要倒计时cookie(倒计时代码)
2008/11/19 Javascript
jQuery实现Flash效果上下翻动的中英文导航菜单代码
2015/09/22 Javascript
jQuery的文档处理程序详解
2016/05/10 Javascript
javascript实现随机生成DIV背景色
2016/06/20 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
2016/10/21 Javascript
jQuery网页定位导航特效实现方法
2016/12/19 Javascript
利用n工具轻松管理Node.js的版本
2017/04/21 Javascript
js实现rem自动匹配计算font-size的示例
2017/11/18 Javascript
Vue工程模板文件 webpack打包配置方法
2017/12/26 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
在vue中使用vue-echarts-v3的实例代码
2018/09/13 Javascript
实例讲解vue源码架构
2019/01/24 Javascript
利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化)
2021/02/24 Javascript
Python导入txt数据到mysql的方法
2015/04/08 Python
Python脚本处理空格的方法
2016/08/08 Python
带你了解python装饰器
2017/06/15 Python
python使用正则表达式替换匹配成功的组
2017/11/17 Python
Django中针对基于类的视图添加csrf_exempt实例代码
2018/02/11 Python
Python基于最小二乘法实现曲线拟合示例
2018/06/14 Python
python从子线程中获得返回值的方法
2019/01/30 Python
Python根据字典的值查询出对应的键的方法
2020/09/30 Python
Python爬虫入门教程02之笔趣阁小说爬取
2021/01/24 Python
Matlab使用Plot函数实现数据动态显示方法总结
2021/02/25 Python
购买澳大利亚最好的服装和内衣在线:BONDS
2016/10/14 全球购物
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
秘书行业自我鉴定范文
2013/12/30 职场文书
写演讲稿要注意的六件事
2014/01/14 职场文书
《盘古开天地》教学反思
2014/02/28 职场文书
小学端午节活动方案
2014/03/13 职场文书
售后求职信范文
2014/03/15 职场文书
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python