python threading.current_thread().name和.getName()有什么区别

今天学到python多线程这块,想显示当前线程是主线程还是子线程.网上一搜,有个方法叫

1 threading.current().name

定海偶然

但是发现,同样的threading.current_thread()后面不仅仅有.name属性,而且还有.getName()方法.但是

这2个写法最后得出的结果却是一样的.

那么,2者区别在哪里呢?

 1 import threading
 2 import time
 3
 4 def run(arg):
 5     print("running sub thread...{}".format(threading.current_thread()))
 6     time.sleep(3)
 7
 8 if __name__ == "__main__":
 9     t1 = threading.Thread(target=run,args=("t1",))
10     t1.start()
11     print("mian Thread...{}".format(threading.current_thread().getName()))
12     print("mian Thread...{}".format(threading.current_thread().name))
13
14     t2 = threading.Thread()

定海偶然

name 是当前线程的属性, getName 是当前线程的方法。
尽管 threading.current_thread().name 和 threading.current_thread().getName() 的结果一样,但是完全不是同一种东西呀, 例如通过 threading.current_thread().name = ‘thread_python‘ 来改变它。

最终演示代码:

 1 import threading
 2 import time
 3
 4 def run(arg):
 5     print("running sub thread...{}".format(threading.current_thread()))
 6     threading.current_thread().name="xurui_python"
 7     print("sub1 Thread...{}".format(threading.current_thread().getName()))
 8     print("sub2 Thread...{}".format(threading.current_thread().name))
 9     time.sleep(3)
10
11 if __name__ == "__main__":
12     t1 = threading.Thread(target=run,args=("t1",))
13     t1.start()
14     print("mian1 Thread...{}".format(threading.current_thread().getName()))
15     print("mian2 Thread...{}".format(threading.current_thread().name))

演示代码

代码结果:

1 running sub thread...<Thread(Thread-1, started 23296)>
2 mian1 Thread...MainThread
3 mian2 Thread...MainThread
4 sub1 Thread...xurui_python
5 sub2 Thread...xurui_python

代码结果

时间: 2024-10-22 07:03:37

python threading.current_thread().name和.getName()有什么区别的相关文章

python threading模块

# -*-coding:utf-8 -*- __author__ = 'magicpwn' import threading import time import Queue def worker():     print threading.current_thread().getName() def worker2():     for i in range(0,1000):         print i         time.sleep(1)          threads = [

[Python]threading local 线程局部变量小测试

概念 有个概念叫做线程局部变量,一般我们对多线程中的全局变量都会加锁处理,这种变量是共享变量,每个线程都可以读写变量,为了保持同步我们会做枷锁处理.但是有些变量初始化以后,我们只想让他们在每个线程中一直存在,相当于一个线程内的共享变量,线程之间又是隔离的.python threading模块中就提供了这么一个类,叫做local. 多线程中共享变量和局部变量的区别我画两个小图,简单描述下(作图能力一般,请见谅,概念性的东西大家可以google下,很多好文章) 全局变量 线程局部变量 对比: 下面是

Python学习笔记- Python threading模块

Python threading模块 直接调用 # !/usr/bin/env python # -*- coding:utf-8 -*- import threading import time def sayhi(num): print("running on number:%s" % num) time.sleep(3) if __name__ =='__main__': #生成两个线程实例 t1 = threading.Thread(target=sayhi,args=(1,)

python threading

python threading 模块使用多线程.感谢小马哥指点迷津. #!/usr/bin/env python # -*- coding: UTF-8 -*- import threading threads = [] # 先创建线程对象  for li in db_con:     t = threading.Thread(target=update_thread,args=(list,file,db_con,li))     threads.append(t) # 启动所有线程 for 

python threading --- 基于线程的并行

threading --- 基于线程的并行 这个模块在较低级的模块 _thread 基础上建立较高级的线程接口. 这个模块定义了以下函数: threading.active_count() 返回当前存活的线程类 Thread 对象.返回的计数等于 enumerate() 返回的列表长度. threading.current_thread() 返回当前对应调用者的控制线程的 Thread 对象.如果调用者的控制线程不是利用 threading 创建,会返回一个功能受限的虚拟线程对象. thread

python threading模块使用 以及python多线程操作的实践(使用Queue队列模块)

今天花了近乎一天的时间研究python关于多线程的问题,查看了大量源码 自己也实践了一个生产消费者模型,所以把一天的收获总结一下. 由于GIL(Global Interpreter Lock)锁的关系,纯的python代码处理一般逻辑的确无法活动性能上的极大提升,但是在处理需要等待外部资源返回或多用户的应用程序中,多线程仍然可以作为一个比较好的工具来进行使用. python提供了两个模块thread和threading 来支持python的多线程操作.通俗的讲一般现在我们只使用threading

python threading queue

import queue,threading l=threading.Lock() class MyThread(threading.Thread): def __init__(self): threading.Thread.__init__(self) global que self.queue = que def run(self): while True: if self.queue.empty(): break item = self.queue.get() if l.acquire(1

python threading超线程使用简单范例的代码

在工作过程中中,将内容过程中经常用的内容片段珍藏起来,下面内容段是关于python threading超线程使用简单范例的内容,希望能对小伙伴们有较大帮助. # encoding: UTF-8 import threading # 方法1:将要执行的方法作为参数传给Thread的构造方法 def func(): print 'func() passed to Thread' t = threading.Thread(target=func) t.start() # 方法2:从Thread继承,并

python threading实例解析diaoyo&#39;n

1.认识GIL: 说到GIL一直是代码专家们一直以来想要解决的问题,也是被许多程序员诟病的,下面带领大家看下官方threading模块document中如何去描述对于GIL这个全局解释器锁的:https://docs.python.org/3/library/threading.html 全局解释器锁 所使用的机制的CPython解释器来确保只有一个线程执行的Python 字节码在一个时间.通过使对象模型(包括关键的内置类型,例如dict)隐式安全地防止并发访问,从而简化了CPython的实现.