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 相关文章推荐
python3.0 字典key排序
Dec 24 Python
python中关于时间和日期函数的常用计算总结(time和datatime)
Mar 08 Python
Python logging模块学习笔记
May 24 Python
python的即时标记项目练习笔记
Sep 18 Python
django使用html模板减少代码代码解析
Dec 12 Python
CentOS7.3编译安装Python3.6.2的方法
Jan 22 Python
python的依赖管理的实现
May 14 Python
python3.8下载及安装步骤详解
Jan 15 Python
Keras load_model 导入错误的解决方式
Jun 09 Python
python 实现图片裁剪小工具
Feb 02 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
Mar 03 Python
Python 恐龙跑跑小游戏实现流程
Feb 15 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
example2.php
2006/10/09 PHP
Linux下实现PHP多进程的方法分享
2012/08/16 PHP
PHP文件上传主要代码讲解
2013/09/30 PHP
Codeigniter操作数据库表的优化写法总结
2014/06/12 PHP
php简单分页类实现方法
2015/02/26 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
基于laravel where的高级使用方法
2019/10/10 PHP
基于jquery的代码显示区域自动拉长效果
2011/12/07 Javascript
浮动的div自适应居中显示的js代码
2013/12/23 Javascript
JavaScript点击按钮后弹出透明浮动层的方法
2015/05/11 Javascript
JS实现的不规则TAB选项卡效果代码
2015/09/18 Javascript
JavaScript正则表达式小结(test|match|search|replace|split|exec)
2016/12/08 Javascript
JavaScript中数组Array.sort()排序方法详解
2017/03/01 Javascript
vue组件横向树实现代码
2018/08/02 Javascript
ES6 十大特性简介
2020/12/09 Javascript
[02:17]TI4西雅图DOTA2前线报道 啸天mik夫妻档解说
2014/07/08 DOTA
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
关于Python中Inf与Nan的判断问题详解
2017/02/08 Python
TensorFlow实现卷积神经网络CNN
2018/03/09 Python
python学习之hook钩子的原理和使用
2018/10/25 Python
Python实现深度遍历和广度遍历的方法
2019/01/22 Python
django基于cors解决跨域请求问题详解
2019/08/06 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
python多线程使用方法实例详解
2019/12/30 Python
基于python实现把json数据转换成Excel表格
2020/05/07 Python
解决pytorch 交叉熵损失输出为负数的问题
2020/07/07 Python
利用canvas实现图片下载功能来实现浏览器兼容问题
2019/05/31 HTML / CSS
以色列的身体护理及家居香薰品牌:Sabon NYC
2018/02/23 全球购物
链表面试题-一个链表的结点结构
2015/05/04 面试题
NULL是什么,它是怎么定义的
2015/05/09 面试题
机电一体化求职信
2014/03/10 职场文书
不服从上级领导安排的检讨书
2014/09/14 职场文书
国庆庆典邀请函
2015/02/02 职场文书
Python制作表白爱心合集
2022/01/22 Python
Redis唯一ID生成器的实现
2022/07/07 Redis
Nginx如何限制IP访问只允许特定域名访问
2022/07/23 Servers