python threading.current_thread().name和.getName()有什么区别
今天学到python多线程这块,想显示当前线程是主线程还是子线程.网上一搜,有个方法叫
threading.current().name
定海偶然
但是发现,同样的threading.current_thread()后面不仅仅有.name属性,而且还有.getName()方法.但是
这2个写法最后得出的结果却是一样的.
那么,2者区别在哪里呢?
import threading
import time def run(arg):
print("running sub thread...{}".format(threading.current_thread()))
time.sleep(3) if __name__ == "__main__":
t1 = threading.Thread(target=run,args=("t1",))
t1.start()
print("mian Thread...{}".format(threading.current_thread().getName()))
print("mian Thread...{}".format(threading.current_thread().name)) t2 = threading.Thread()
定海偶然
name 是当前线程的属性, getName 是当前线程的方法。
尽管 threading.current_thread().name 和 threading.current_thread().getName() 的结果一样,但是完全不是同一种东西呀, 例如通过 threading.current_thread().name = 'thread_python' 来改变它。
最终演示代码:
import threading
import time def run(arg):
print("running sub thread...{}".format(threading.current_thread()))
threading.current_thread().name="xurui_python"
print("sub1 Thread...{}".format(threading.current_thread().getName()))
print("sub2 Thread...{}".format(threading.current_thread().name))
time.sleep(3) if __name__ == "__main__":
t1 = threading.Thread(target=run,args=("t1",))
t1.start()
print("mian1 Thread...{}".format(threading.current_thread().getName()))
print("mian2 Thread...{}".format(threading.current_thread().name))
演示代码
代码结果:
running sub thread...<Thread(Thread-1, started 23296)>
mian1 Thread...MainThread
mian2 Thread...MainThread
sub1 Thread...xurui_python
sub2 Thread...xurui_python
代码结果
python threading.current_thread().name和.getName()有什么区别的更多相关文章
- Python threading(多线程)
threading模块在较低级别thread模块之上构建更高级别的线程接口. 一.threading模块定义了以下函数和对象: threading.active_count() 等同于threadin ...
- python threading.thread
Thread 是threading模块中最重要的类之一,可以使用它来创建线程.有两种方式来创建线程:一种是通过继承Thread类,重写它的run方法:另一种是创建一个threading.Thread对 ...
- Python学习笔记- Python threading模块
Python threading模块 直接调用 # !/usr/bin/env python # -*- coding:utf-8 -*- import threading import time d ...
- [Python]threading local 线程局部变量小測试
概念 有个概念叫做线程局部变量.一般我们对多线程中的全局变量都会加锁处理,这样的变量是共享变量,每一个线程都能够读写变量,为了保持同步我们会做枷锁处理.可是有些变量初始化以后.我们仅仅想让他们在每一个 ...
- python threading模块的Lock和RLock区别
首先了解这两者是什么. 以下说明参考自python官网 Lock:Lock被称为①原始锁,原始锁是一个②在锁定时不属于特定线程的同步基元组件,它是能用的最低级的同步基元组件.原始锁处于 "锁 ...
- python threading模块使用 以及python多线程操作的实践(使用Queue队列模块)
今天花了近乎一天的时间研究python关于多线程的问题,查看了大量源码 自己也实践了一个生产消费者模型,所以把一天的收获总结一下. 由于GIL(Global Interpreter Lock)锁的关系 ...
- python 进程、线程与协程的区别
进程.线程与协程区别总结 - 1.进程是计算器最小资源分配单位 - 2.线程是CPU调度的最小单位 - 3.进程切换需要的资源很最大,效率很低 - 4.线程切换需要的资源一般,效率一般(当然了在不考虑 ...
- Python协程与Go协程的区别二
写在前面 世界是复杂的,每一种思想都是为了解决某些现实问题而简化成的模型,想解决就得先面对,面对就需要选择角度,角度决定了模型的质量, 喜欢此UP主汤质看本质的哲学科普,其中简洁又不失细节的介绍了人类 ...
- Python join() 方法与os.path.join()的区别
Python join() 方法与os.path.join()的区别 pythonJoinos.path.join 今天工作中用到python的join方法,有点分不太清楚join() 方法与os.p ...
随机推荐
- c++ 实现https网页上的图片爬取
一.主要的原理 我们通过发送一个http请求,获得目标网页的html源代码,然后通过正则表达式获取到图片的URL,把该网页的所有的图片都保存到一个文件夹,这就是整个软件的流程. 二.具体的实践 现在很 ...
- Qualcomm_Mobile_OpenCL.pdf 翻译-1
1 前言 1.1 目的 这篇文档的主要目的是,向原始设备制造商(OEMs),独立软件供应商(ISVs),第三方开发者们,提供在基于高通骁龙400系列.600系列,和800系列的手机平台和芯片上进行开发 ...
- linux系统很卡的基本排查方法
1. 查看内存使用情况 free -g 当观察到free栏已为0的时候,表示内存基本被吃完了,那就释放内存吧(释放内存参考上篇文章) 2. 查看磁盘使用情况 df -h 当发现磁盘使用率很高时,那就要 ...
- jquery判断cookie是否存在
首先请加载jquery库与jquery cookie插件 http://code.jquery.com/jquery-latest.js http://files.cnblogs.com/afish/ ...
- 一、Flux 是什么?
React 本身只涉及UI层,如果搭建大型应用,必须搭配一个前端框架.也就是说,你至少要学两样东西,才能基本满足需要:React + 前端框架. Facebook官方使用的是 Flux 框架.本文就介 ...
- zabbix监控win服务器
https://jingyan.baidu.com/article/fcb5aff76486f2edaa4a712a.html 卸载win上的zabbix: cmd /c "C:\zabbi ...
- python_自动化测试用例参数化
参数化有三种,代码驱动,数据驱动,关键字驱动 代码驱动,测试数据写在代码中 如下: import requests,json import unittest import BeautifulRepor ...
- jmeter-响应有中文时,显示乱码
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
- [大数据] hadoop全分布式安装
一.准备工作 在伪分布式的搭建基础上修改配置,搭建全分布式hadoop环境,伪分布式安装参照 hadoop伪分布式安装. 首先准备4台虚拟机,信息如下: 192.168.1.11 namenode1 ...
- 【LOJ2604】「NOIP2012」开车旅行
[题目链接] [点击打开链接] [题目大意] 从西到东的坐标轴\([1,n]\)上有\(n\)个海拔互不相同的城市,每两个城市之间的距离定义为\(dis(i,j)=|h_i-h_j|\) 小\(A\) ...