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中的实现
May 04 Python
Python实现基本线性数据结构
Aug 22 Python
matplotlib调整子图间距,调整整体空白的方法
Aug 03 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
Feb 21 Python
Atom Python 配置Python3 解释器的方法
Aug 28 Python
Python根据服务获取端口号的方法
Sep 25 Python
python自动结束mysql慢查询会话的实例代码
Oct 27 Python
基于python求两个列表的并集.交集.差集
Feb 10 Python
python3发送request请求及查看返回结果实例
Apr 30 Python
Python参数传递机制传值和传引用原理详解
May 22 Python
Python 解析库json及jsonpath pickle的实现
Aug 17 Python
详解OpenCV获取高动态范围(HDR)成像
Apr 29 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
eWebEditor v3.8 商业完整版 (PHP)
2006/12/06 PHP
jQuery EasyUI API 中文文档 - DateBox日期框
2011/10/15 PHP
ThinkPHP利用PHPMailer实现邮件发送实现代码
2013/09/26 PHP
destoon文章模块调用企业会员资料的方法
2014/08/22 PHP
php通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
php  单例模式详细介绍及实现源码
2016/11/05 PHP
thinkphp中的多表关联查询的实例详解
2017/10/12 PHP
PHP支付宝当面付2.0代码
2018/12/21 PHP
php面向对象重点知识分享
2019/09/27 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
2019/09/30 PHP
JS 获取滚动条高度示例代码
2013/10/24 Javascript
js实现键盘控制DIV移动的方法
2015/01/10 Javascript
jQuery实现右键菜单、遮罩等效果代码
2016/09/27 Javascript
jQuery实现最简单实用的分秒倒计时
2017/02/05 Javascript
浅谈Node.js 中间件模式
2018/06/12 Javascript
微信小程序实现消息框弹出动画
2020/04/18 Javascript
JS开发自己的类库实例分析
2019/08/28 Javascript
基于node+websocket+html实现腾讯课堂聊天室聊天功能
2020/03/04 Javascript
python获取当前时间对应unix时间戳的方法
2015/05/15 Python
python绘图方法实例入门
2015/05/19 Python
Python类的继承和多态代码详解
2017/12/27 Python
Django 配置多站点多域名的实现步骤
2019/05/17 Python
Python列表切片常用操作实例解析
2019/12/16 Python
pytorch forward两个参数实例
2020/01/17 Python
实现CSS3中的border-radius(边框圆角)示例代码
2013/07/19 HTML / CSS
html5的自定义data-*属性与jquery的data()方法的使用
2014/07/02 HTML / CSS
自主招生自荐书
2013/11/29 职场文书
个性发展自我评价
2014/02/11 职场文书
《囚绿记》教学反思
2014/03/01 职场文书
社团活动总结范文
2014/04/26 职场文书
融资租赁计划书
2014/04/29 职场文书
高一军训的心得体会
2014/09/01 职场文书
介绍信模板
2015/01/31 职场文书
婚宴父母致辞
2015/07/27 职场文书
Nginx Rewrite使用场景及配置方法解析
2021/04/01 Servers
Nginx如何配置Http、Https、WS、WSS的方法步骤
2021/05/11 Servers